【发布时间】:2017-03-15 09:33:29
【问题描述】:
我有两个要使用实体框架创建的模型类:技能和活动。以下是每个的定义:
技能.cs
public class Skill
{
public int Id { get; set; }
public String Name { get; set; }
}
Activity.cs
public class Activity
{
public int Id { get; set; }
public String Name { get; set; }
public virtual List<Skill> RequiredSkills { get; set; }
}
理想情况下,在数据库中,我希望 Activity 通过外键链接到关联实体(例如 SkillActivityAssoc),并且 Skill 不必对它做任何事情。我不需要跟踪哪些活动需要某种技能。我只需要跟踪每个活动需要哪些技能,从而解释为什么我在技能类中没有列表。我希望这是有道理的。
我的问题是:这样做是否正确?当我通过以下方式更新 Activity 的 RequiredSkills 属性时:
activity.RequiredSkills = someInstanceOfRequiredSkillsList;
dbcontext.Entry(activity).State = EntityState.modified;
dbcontext.SaveChanges();
..,它不起作用。我已经推测这是因为我无法更新关联实体。此外,我当前的实现在我想摆脱的 Skill 类中有一个 virtual List<Activity> 属性。如何更改我的模型设计以及如何相应地更新RequiredSkills?
提前感谢您!
【问题讨论】:
标签: entity-framework