0

时,会发生在EF 5.0我有3个步骤继承 抽象实体 抽象ApplicationEntity:实体 抽象SystemEntity:ApplicationEntity错误3034使用TPT继承和多对多的关系

系统实体包含一个多对多导航属性当我尝试加载时我得到(202,10):错误3034:映射片段开始于行202,208的问题:具有不同键的两个实体映射到同一行。确保这两个映射片段不会将具有不同键的两组实体映射到同一组行。

(208,10):错误3034:从第208,578行开始映射片段时出现问题:具有不同键的两个实体映射到同一行。确保这两个映射片段不会将具有不同键的两组实体映射到同一组行。

请帮我

+0

你首先做的代码? – 2013-05-06 21:39:50

回答

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