簡體   English   中英

實體框架簡單報告

[英]Entity Framework Simple Report

我將如何使用實體框架編寫查詢,在其中我需要列出包含產品,類別和父類別的列的列表。 我還沒有弄清楚如何獲得父類別。 任何幫助表示贊賞。 到目前為止,我有以下內容:

from product in Products
select new { Ctg = (from prdCategory in ProductCategories
                    where prdCategory.Products.Contains(product)
                    select prdCategory.CategoryName).FirstOrDefault(),
             Name = product.ProductName
             ParentCtg = ...
    }

好的,如果已經從您的數據庫中正確設置了所有關聯,那么這將是一個簡單的查詢:

var product = from p in context.Products
              select new {
                 Name = product.ProductName,
                 CategoryNames = p.ProductCategories
                         .Select(c => c.CategoryName).ToList(),
                 ParentCategories = p.ProductCategories
                         .Select(c => c.ProductCategory2.CategoryName).ToList()
              };

EF映射自引用關聯時 ,它會創建兩個相關的導航屬性,分別為ProductCategory1ProductCategory2 這兩個名稱都不是特別有用,這些導航屬性之一是指父類別或關系的0..1端。 另一個是指孩子或戀愛關系中的*。
要了解哪個是哪個,請右鍵單擊ProductCategory1,在屬性窗口中,ProductCategory1多重性是*(多),所以ProductCategory1代表為孩子或子類別的導航屬性(也很型的EntityCollection<ProductCategory> )和其他一個-ProductCategory2-表示該類別的父類別,其類型為ProductCategory 對於您的查詢,我們對此感興趣。
除了-使您的查詢更具可讀性-您可以重命名ProductCategory1小類ProductCategory2ParentCategory。

如果我正確地理解了您的架構,那應該是簡單獲取產品列表的簡單情況,並且您的顯示列表應該只顯示“ thisProduct.Category.Name”列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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