簡體   English   中英

復雜的祖父母/父母/子女關系有麻煩Entity Framework 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM