我可以在实体框架中混合使用每个层次的表和每种类型的表吗?
假设我有两个表格:Message和SuperMessage
和3个实体:消息(基础(非抽象)),Comment(继承自Message)和SuperMessage(继承自Message)
消息具有不可空的MessageType字段,用作鉴别器。
问题是,我无法在SuperMessage的映射细节部分的MessageType上指定条件,因为它无法看到MessageType字段,我不能忽略它。
我怎样才能使这些工作与海誓山盟一起工作?
更新构建错误:
错误3014:映射片段中的问题:表SuperMessage(ID)到表Message(MessageId):'的外键'外键约束'FK_SuperMessage_inherits_Message'未在模型中强制执行。 需要创建关联或继承关系来强制执行此约束。
我重现了这一点,并得到了与你一样的错误。 据我所知,似乎将这两种类型的继承组合在一个基表中是不可能的。 我很想被证明是错误的。 ;-)
你有没有尝试添加一个中间抽象实体类型,即:
abstract MessageBase --> Message table
non-abstract Message --> Message table when MessageType == 1
non-abstract Comment --> Message table when MessageType == 2
abstract SuperMessageBase --> Message table when MessageType == 3
non-abstract SuperMessage --> SuperMessage table
另外检查一下我解决的类似情况:EF:当TPH表中的抽象基数和一些具体类型以及其他类型都有自己的表时,我可以混合使用TPH和TPT吗?
链接地址: http://www.djcxy.com/p/49745.html上一篇: Can I mix Table per Hierarchy and Table per Type in Entity Framework?