首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用graphdiff和实体框架将外键关联设置为继承对象

使用graphdiff和实体框架将外键关联设置为继承对象
EN

Stack Overflow用户
提问于 2014-11-03 10:13:53
回答 1查看 434关注 0票数 1

对于从另一个类继承的外键更新值,我有问题。我在实体框架中使用分离的对象,所以我使用graphdiff来处理它。

我简化了代码,使其更容易阅读

项目班:

代码语言:javascript
复制
public class Project
{
    public Guid Id { get; set; }

    public virtual List<Activity> Activities { get; set; }
}

活动课:

代码语言:javascript
复制
public class Activity
{
    public Guid Id { get; set; }

    public String Name { get; set; }

    public virtual Company Company { get; set; }
}

SurfingActivity类:

代码语言:javascript
复制
public class SurfingActivity : Activity
{
    public String Comment { get; set; }

    public virtual Weather Weather { get; set; }
}

使用graphdiff的更新上下文:

代码语言:javascript
复制
public void UpdateActivity(Project project)
{
    this.UpdateGraph(project, map => map
        .OwnedCollection(p => p.Activities, with => with
            .AssociatedEntity(a => a.Company)
        )
    );
}

我只能将公司属性与活动联系起来,而不能将SurfingActivity的天气联系起来。当我传递SurfingActivity的值时,Id、Name、Company和Comment会保存在Activity表和SurfingActivity表中,而不是SurfingActivity表中。有没有人建议如何解决这个问题,而不必在项目上创建一个包含surfingActivity列表的新属性

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-04 09:56:23

我在GraphDiff中询问了andypelzer,这是目前不支持的。在这种情况下(但如果实体变得更加嵌套),我的工作是将外键属性添加为数据类型它是什么,并将数据注释ForeignKey添加到该实体的外键中,如下所示:

代码语言:javascript
复制
    public System.Guid? Weather_Id { get; set; }

    [ForeignKey("Weather_Id")]
    public virtual Weather Weather { get; set; }

问题链接:https://github.com/refactorthis/GraphDiff/issues/112

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26711994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档