首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我在EF中得到双列?

为什么我在EF中得到双列?
EN

Stack Overflow用户
提问于 2015-03-05 05:41:40
回答 1查看 63关注 0票数 1

为什么我得到一个双倍的列,如图所示:

如何将此列合并到一列而不是两列?

代码语言:javascript
复制
public class User
{
    [Key]
    public long id { get; set; }
}

public class Woman : User
{
    public Woman()
    {
        s = new SharedManWoman();
        Clone = new Clone.CWoman();
    }

    public Clone.CWoman Clone { get; set; }
    public SharedManWoman s { get; set; }
}

public class Man : User
{
    public Man()
    {
        s = new SharedManWoman();
        Clone = new Clone.CMan();
    }

    public Clone.CMan Clone { get; set; }
    public SharedManWoman s { get; set; }
}

public class SharedManWoman
{
    [Key]
    public long tableId { get; set; }
}

public class CUser
{
    [Key]
    public long id { get; set; }
}

public class CWoman : CUser {}

public class CMan : CUser {}
EN

回答 1

Stack Overflow用户

发布于 2015-03-05 07:26:20

这两个类都是在不同的派生类中定义的,而且因为它们是导航属性,所以它们都会为每个类生成一个外键:

代码语言:javascript
复制
public Clone.CWoman Clone { get; set; }

public Clone.CMan Clone { get; set; }

你可以把它们移到基类中,去掉CWoman/CMan,而把它变成CUser类型:

代码语言:javascript
复制
public class User
{
    [Key]
    public long id { get; set; }
    public Clone.CUser Clone { get; set; }

}

这应该会去掉其中一个重复的FK,但不确定这个解决方案是否适合您正在尝试实现的目标。

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

https://stackoverflow.com/questions/28865565

复制
相关文章

相似问题

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