繁体   English   中英

如何在EDMX设计中将一张表制作成多张class

[英]How to make one table to many class in EDMX design

这是我的主要 class

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 的表 map。 毕竟我得到了这样的错误:

错误 3032:从第 2877、2907 行开始的映射片段出现问题:EntityTypes MyModel.MainAcc、MyModel.ChildAcc 被映射到表 MainAcc 中的相同行。 可以使用映射条件来区分这些类型映射到的行。

文本编辑器中的错误在 MainAcc 中。

看起来你不能这样做。 我认为这应该是两个不同的表,但它们可以通过一些外键关联起来。

我尝试了Database FirstModel First ,我最终添加的脚本显示这将是两个相互关联的不同表。

也许您希望拥有一对一或一对多关系,但这不会发生在单个表中。 如果您 go Database First方式,更改 model 可能会导致与当前上下文不一致。 如果采用Model First方式,model关系建立后会自动生成两张表。

我也尝试过使用分表的方式进行表映射,但是对依赖的实体类型有一些限制,派生类型不能映射到同一个表。

有用的网址:

高级表映射

Model 第一

在 EF 6 中配置一对多关系

这只是我的看法,希望对你有帮助。 如果我的理解有误,请帮助我纠正。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM