簡體   English   中英

在使用Group By子句重構LINQ語句時需要幫助嗎?

[英]Need help refactoring a LINQ statement with a Group By clause?

在下面找到需要重構的Linq-To-SQL:

   var query = from p in Cache.Model.Products
               join sc in Cache.Model.ShishaCombinations on p.ProductID equals sc.ProductID
               where sc.NumberOfMixes ==  mixes
               select new { p.ProductID, p.Name };

具有以下一線:

   group by p.ProductID

我知道group by省略了對select子句的任何需要,因此兩者都可以一起生活在同一LINQ-To-SQL語句中,因此有人可以幫助我重構以上內容嗎?

為了幫助我刪除結果中的所有重復數據。 <-這是這個問題的重點。 根據產品使用的調味劑的數量,將產品重復多次。 因此,在“ ShishaCombinations”表中,一個ProductID可能會針對其使用的每種口味重復多次。 我想對上述查詢返回的結果進行分組,或對其進行調用,因為我不想將乘積“ n”次添加到我的GUI中,因為在結果中出現“ n”次。 希望這將消除對我正在嘗試做的任何混淆。

下面的代碼就是我所需要的:

        var query1 = (from p in Cache.Model.Products
                     join sc in Cache.Model.ShishaCombinations on p.ProductID equals sc.ProductID
                     where sc.NumberOfMixes == mixes
                     select new { p.ProductID, p.Name }).Distinct();

烏福克,謝謝你答應伴侶 我知道我的回答很簡單:)

您可以在select子句后使用into關鍵字。 您不能僅按分組,因為您要投影匿名類型。

   var query = from p in Cache.Model.Products
               join sc in Cache.Model.ShishaCombinations on p.ProductID equals sc.ProductID
               where sc.NumberOfMixes ==  mixes
               select new { p.ProductID, p.Name } into productInfo
               group productInfo by productInfo.productId;

暫無
暫無

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

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