簡體   English   中英

EF6-在單個查詢中返回計算的分組結果

[英]EF6 - Return calculated grouped results within a single query

我有一個使用情況表,用於存儲各種產品客戶的日常使用情況。 我現在想返回一個結果,該結果按客戶ID將結果分組,以表示各種產品的總使用量/總使用量。

參見下面完美說明當前數據結構的示例:)

  • id | 客戶ID | prod1 | 產品2
  • 1。 123。 0。 1個
  • 2。 125。 5。 5
  • 3。 125。 1。 1個

我希望返回這樣的結果集(再次,佩服我的插圖能力):

  • 客戶ID | prod1 | 產品2
  • 123。 0。 1個
  • 125。 6。 6

使用EF可以進行這種計算嗎? 我正在嘗試避免許多循環來實現相同的目的,因此這將極大地幫助一個兄弟。

您需要的是GroupBySum

var result = context.Customers
    // .Where(filter) // filter if needed
    .GroupBy(m => m.CustomerID)
    .Select(g => new 
    {
        CustomerID = g.Key, // We grouped according to CustomerID, so key = CustomerID
        SumProd1 = g.Sum(m => m.Prod1), // Sum Prod1 of grouped data
        SumProd2 = g.Sum(m => m.Prod2) // Sum Prod2 of grouped data
    })
    .ToList(); 

注意: ToList()用於檢索數據,如果您打算處理查詢,則不需要。

暫無
暫無

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

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