我有3步继承 抽象实体 abstract ApplicationEntity:Entity abstract SystemEntity:ApplicationEntity
系统实体包含多对多导航属性,当我尝试加载时我得到(202,10):错误3034:从第202,208行开始映射片段时出现问题:具有不同键的两个实体被映射到同一行。确保这两个映射片段不会将具有不同键的两组实体映射到同一组行。
(208,10):错误3034:从第208,578行开始映射片段的问题:具有不同键的两个实体被映射到同一行。确保这两个映射片段不会将具有不同键的两组实体映射到同一组行。
请帮帮我
答案 0 :(得分:0)
我将在这里发布解决方案,但这可能不适合您的问题,因为这是代码优先方法。
解决方案实际上非常简单。只需使用唯一的表名来装饰基类和派生类,EF就会将每个类表示为一个单独的表。
在实践中(使用VB,但如果是C#,你就明白了):
基类
Imports System.ComponentModel.DataAnnotations.Schema
Namespace Models
<Table("Notification")>
Public MustInherit Class NotificationBase
Public Property ID As Integer
...
End Class
End Namespace
派生类
Imports System.ComponentModel.DataAnnotations.Schema
Namespace Models
<Table("EmergencyNotification")>
Public NotInheritable Class EmergencyNotifications
Inherits NotificationBase
...
End Class
End Namespace