我目前使用EF數據庫第一種方法創建MVC/AngularJS應用程序。在實現我的數據庫之後,我意識到我不能使用Database-First方法引用多對多關係。LINQ多對多選擇
一個例子可能是Table1
通過稱爲Table3
的第三個表具有與Table2
的多對多關係。 Table3
包含兩個主鍵:Table1
的PK和Table2
的PK。更新我的EDMX模型,我仍然不能添加這個表格,這是合理的,因爲它只是一個多對多的關係,並且應該在Table1
類模型和Table2
類上設置此屬性。
問題
使用AngularJS爲我的前端,我需要我從數據庫中檢索的數據轉換,而進入的HttpResponse(IHttpActionResult
)。我以前遇到過這樣的問題(使用代碼優先),並簡單地禁用延遲加載(從我的EMDX模型類中的屬性中刪除了virtual
關鍵字)。
禁用延遲加載後,我似乎無法包含關係。下面是我的意思的例子:
from t1 in _context.Table1.Include(x => x.Table2)
的Table2
引用根本不包括在內,因此Icollection<Table2>
只是空。
這是否即使有什麼從我的財產與我removingthe virtual
關鍵字,或者是這個東西是了問題兩者的映射?
您需要加入表格。看到msdn:https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b – jdweng
但我不能。我有三個表格,其中2個包含在我的模型中,但最後一個表格不是,它包含關係,因爲它是多對多的關係。我很確定我不能像這樣加入,除非你能向我展示一個例子嗎? – Detilium
請在請在SO發佈問題之前做一些研究。有很多例子做很多很多,他們幾個是 - 1)http://www.entityframeworktutorial.net/code-first/configure-many-to-many-relationship-in-code-first.aspx 2)https://stackoverflow.com/questions/19342908/how-to-create-a-many-to-many-mapping-in-entity-framework 3)https://stackoverflow.com/questions/5434125/實體框架 - codefirst一對多一對多的關係,與附加信息前 –