2013-06-29 35 views
0

我想寫一個將返回的Linq查詢,列爲CompanyNameSupplier以及該公司所有產品的數量。你可以幫我嗎?如何選擇公司名稱和產品編號?

到目前爲止,我得到這個:

var company = from pro in db.Products 
       join sup in db.Suppliers 
        on pro.SupplierID equals sup.SupplierID 
       group pro by pro.SupplierID 
       into g 
       select new { Name = g.Key, COUNT = g.Count() }; 

但這返回SupplierIDCompanyName。數據庫是Northwnd。

+1

你有什麼不知道?你不知道這個具體的查詢是做什麼的,所以你不知道如何改變它? – psubsee2003

+0

它返回SupplierID,並且我想要Suppliername中的CompanyName – Kmaczek

+1

我理解這一部分,但我只是想弄明白你是否理解整個查詢實際上在做什麼。 – psubsee2003

回答

2

使用組連接(即加入...到)加入與產品供應商,並獲得組供應商的所有產品:

from s in db.Suppliers 
join p in db.Products 
    on s.SupplierID equals p.SupplierID into g 
select new { 
    s.CompanyName, 
    ProductsCount = g.Count() 
} 
+1

這更好:) – Kmaczek

2

以下內容編譯並使用Linq for for objects運行。我不能保證Linq-to-SQL能否應付。

var company = from sup in db.Suppliers 
       select new 
       { 
        Name = sup.CompanyName, 
        COUNT = db.Products 
         .Where(pro => pro.SupplierID == sup.SupplierID) 
         .Count() 
       }; 
+0

它很好,適合我。謝謝 – Kmaczek