3

嗨,我回來了另一個問題,我已經開始使用EF,我遇到了問題。表未映射到實體框架數據模型

概述:
我做了一個EF模型,並且發現了一個表(命名的UserRole)沒有在EF模型圖表顯示了,我試圖通過「更新數據模型」進行添加,但嚮導沒有向我顯示要添加的表格(就好像它已經添加了),我還嘗試通過「更新數據模型」嚮導來刷新模型,這沒有幫助。

問題說明:
原始數據圖表。
enter image description here
部分EF模型圖
enter image description here
我試圖通過 「更新數據模型」,將其添加
enter image description here

我試圖在EF diargram到重命名的實體「UserRoles」,彈出錯誤消息。 enter image description here

P.S:我想我已經提出了這個問題很好,但PLZ讓我知道的任何更多的信息ü可能需要。

回答

2

那麼,你的工作現在與對象,沒有更多的SQL。

而與EF,多對多的關係不需要一個特殊的「實體」,而是一個特定的「關係」。

在User類中,您將擁有一個Roles列表,並在Roles類中列出一個User列表。這完全代表了簡單的多對多關係。

如果你在你的關係表至少有onother特性(「RelationName」字符串, - 愚蠢的 - 例如),那麼就存在於EF模型...

編輯: 不知道的你需要什麼:這只是「對象」方式。想想如果您不使用數據庫,您將創建這些類的方式:您將在關係的每個部分中執行另一個列表。但是Sql不能這樣做(數據庫中不能有「列表」),所以Sql需要一個關係表。但EF是一個ORM,所以對象,而不是SQL。

編輯2:

你會在代碼中創建首先你的關係,但它是相當明確的 http://blogs.msdn.com/b/wriju/archive/2011/05/14/code-first-ef-4-1-building-many-to-many-relationship.aspx

詳細解答的方式,只是谷歌「實體框架多對多」前人的精力做的伎倆

+0

請加入更多詳細信息,因爲我是新手 –

+0

您的意思是導航屬性名稱爲「角色」? –

+1

是的,角色是User類中的導航屬性,User是Roles類中的導航屬性。重命名這些導航屬性也許更清楚:首先有「單數」類(角色而不是角色),然後命名「用戶」和「角色」列表導航屬性(或者UserList和RoleList,如你所願)。 –