0

我有 3 步继承抽象实体抽象 ApplicationEntity:Entity abstract SystemEntity:ApplicationEntity

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

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

请帮我

4

1 回答 1

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
于 2013-05-06T21:48:34.687 回答