EF 5.0 Code First多对多关系

时间:2013-01-09 02:09:52

标签: vb.net entity-framework

我的应用程序有许多包含“Notes”属性的类。我们想创建一个Notes类来包含链接到每个类中的NoteId的所有注释。我放置了:

Private ReadOnly _class As New ObservableListSource(Of Class)()

Public Overridable ReadOnly Property Classes As ObservableListSource(Of Class)
    Get
        Return _class
    End Get
End Property

在每个要绑定的类的新Notes类中。然后我放了:

Public Property NoteId() As Guid
Public Overridable Property Note() As Note

在每个要绑定的类中。如果我尝试建立多个关系,EF不会创建数据库。这似乎是一个很多问题,但我不知道下一步该尝试什么。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

假设每个实体都有多个笔记,我认为你运气不好。我不认为实体框架或任何其他orm将能够以您描述的方式映射关系。你所描述的不是多对多的关系。把数据库关系想象成一条线。有两个目的。每一端都终止于一个表,或者更具体地说是一个表上的主键属性和另一个上的外键属性。你所描述的就像车轮上的辐条,其中一个表与许多其他表之间存在单一关系。其中一个外键列必须链接到许多其他主键列。你可以强制它工作,但你不会得到任何好的实体框架自动魔法,它通过导航属性拉入笔记。

您的选择是:

拥有可以拥有备注的每种实体类型的外键。即,在笔记类中为每种可以有笔记的实体添加导航属性,我不建议这样做。

或者

为每种实体都有一个单独的注释表。即你会有像ANotes,BNotes,CNotes这样的东西。我会推荐这个,因为我认为它比替代品更清洁。

抱歉,我希望有帮助