[英]Setting association to foreign key to inherited object using graphdiff and Entity Framework
我有一个更新从另一个类继承的外键上的值的问题。 我正在使用Entity Framework中的分离对象,因此正在使用graphdiff处理它。
我简化了代码,使其更易于阅读
项目类别:
public class Project
{
public Guid Id { get; set; }
public virtual List<Activity> Activities { get; set; }
}
活动课:
public class Activity
{
public Guid Id { get; set; }
public String Name { get; set; }
public virtual Company Company { get; set; }
}
SurfingActivity类:
public class SurfingActivity : Activity
{
public String Comment { get; set; }
public virtual Weather Weather { get; set; }
}
使用graphdiff的更新上下文:
public void UpdateActivity(Project project)
{
this.UpdateGraph(project, map => map
.OwnedCollection(p => p.Activities, with => with
.AssociatedEntity(a => a.Company)
)
);
}
我只能将“公司”属性关联到“活动”中,而不能关联“冲浪活动”的天气。 当我传递SurfingActivity的值时,Id,Name,Company和Comment会保存在Activity表和SurfingActivity表中,但不会保存。 没有人有任何建议,如何解决此问题,而不必在包含surfingActivity列表的Project上创建新属性
我在GraphDiff中询问了andypelzer,目前不支持此功能。 我的解决方法是在这种情况下起作用(但如果实体变得更加嵌套,则不行)是将外键属性添加为数据类型,并将数据注释ForeignKey添加到具有实体的外键,如下所示:
public System.Guid? Weather_Id { get; set; }
[ForeignKey("Weather_Id")]
public virtual Weather Weather { get; set; }
链接到问题: https : //github.com/refactorthis/GraphDiff/issues/112
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.