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

如何将此列合并到一列而不是两列?
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 {}发布于 2015-03-05 07:26:20
这两个类都是在不同的派生类中定义的,而且因为它们是导航属性,所以它们都会为每个类生成一个外键:
public Clone.CWoman Clone { get; set; }
public Clone.CMan Clone { get; set; }你可以把它们移到基类中,去掉CWoman/CMan,而把它变成CUser类型:
public class User
{
[Key]
public long id { get; set; }
public Clone.CUser Clone { get; set; }
}这应该会去掉其中一个重复的FK,但不确定这个解决方案是否适合您正在尝试实现的目标。
https://stackoverflow.com/questions/28865565
复制相似问题