[英]Entity Framework 6 (one parent table has more than one child table with one to many relationship) in SQL Server
[英]Trouble with a complex grandparent/parent/child relationship Entity Framework SQL Server
我在Entity Framework中遇到了關系方面的麻煩,而且我很肯定大部分問題都源於我無法為Google提出一個好的搜索詞組。 但是..這是問題...
我在現有數據庫中有一組5個表。 這些表之間的關系如下圖所示。
在我的代碼(帶有Razor的MVC4,但無論語言如何,顯而易見的情況)中,我正在執行以下操作:
<p>Store: @Model.StoreName</p>
@foreach (var storeDepartment in Model.StoreDepartments)
{
<p>Department: @storeDepartment.Department.DepartmentName</p>
<p>Items:</p>
<ul>
@foreach (var storeDepartmentItem in storeDepartment.Department.StoreDepartmentItems)
{
<li>@storeDepartmentItem.Item.ItemName</li>
}
</ul>
}
問題是我正在從其他商店(以及兩次一些商品)獲取商品記錄,其中DepartmentID與當前商店相同。 (請不要問為什么我們在多個商店使用相同的DepartmentID ...我無法回答)。
為了解釋上述內容,假設商店ABC的部門ID:1,名稱:Shirts。 在此部門/商店中,有一個商品ID:1,名稱:Green Shirt。
商店DEF的部門ID:1,名稱:襯衫。 在該百貨公司中,有一個商品ID:1,名稱:綠色襯衫,以及一個商品ID:2,名稱:紅色襯衫。
當我在上面的ABC商店代碼中運行此代碼時,它將顯示:
店鋪:ABC
部門:襯衫
項目:
-綠色襯衫
-綠色襯衫
-紅色襯衫
實體框架中是否可以從Department檢索StoreDepartmentItems中的記錄以考慮當前StoreID?
預先感謝,埃文
編輯:只是要清楚,我可以通過更改行來避免重復:
@foreach (var storeDepartmentItem in
storeDepartment.Department.StoreDepartmentItems)
至:
@foreach (var storeDepartmentItem in
storeDepartment.Department.StoreDepartmentItems.Where(a=>a.StoreID == Model.StoreID))
但是,似乎我正在向視圖開發人員施加更大的壓力,這不是我的偏愛。
從StoreDepartmentItems中刪除StoreId盡管您的圖沒有顯示哪些是主鍵,但在我看來,您不需要它,因為DepartmentId映射到也具有StoreId的StoreDepartment。
您的問題可能是一個StoreDepartmentItem可以與您當前結構的兩個不同商店相關聯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.