这是我的主课
public partial class MainAcc
{
public int Id { get; set; }
public string Type1 { get; set; }
public string Type2 { get; set; }
public string Type3 { get; set; }
}
在 EDMX 设计中,我创建了新的实体基类型 MainAcc,我删除了一些我想在 EDMX 设计中移动的列,所以在我保存后它变成了这样
public partial class MainAcc
{
public int Id { get; set; }
public string Type1 { get; set; }
}
public partial class ChildAcc : MainAcc
{
public string Type2 { get; set; }
public string Type3 { get; set; }
}
在设计我的 ChildAcc 实体时使用 MainAcc 的表映射。毕竟我得到了这样的错误:
错误 3032:从第 2877、2907 行开始的映射片段出现问题:EntityTypes MyModel.MainAcc、MyModel.ChildAcc 被映射到表 MainAcc 中的相同行。映射条件可以用来区分这些类型映射到的行。
文本编辑器中的错误在 MainAcc 中。
看起来你不能这样做。我认为这应该是两个不同的表,但它们可以通过一些外键关联起来。
我尝试了
Database First
和 Model First
,我最终添加的脚本显示这将是两个相互关联的不同表。
也许您希望拥有一对一或一对多关系,但这不会发生在单个表中。如果您采用
Database First
方式,更改模型可能会导致与当前上下文不一致。如果采用Model First
方式,建立模型关系后会自动生成两张表
我也尝试过使用分表的方式进行表映射,但是依赖实体类型有一些限制,派生类型不能映射到同一张表。
有用的链接: