簡體   English   中英

在 Linq 中使用 GroupBy:不支持客戶端 GroupBy

[英]Using GroupBy in Linq: Client side GroupBy is not supported

我如何使用 Linq 並將列表分組? 我有以下 linq 表達式來從數據庫中獲取數據,如何修改我的代碼以按 PartyName 字段對結果進行分組?

var RParty = await context.Parties
                           .Where(b => b.ID == request.ID)
                           .ToListAsync();

我試過了

   var RParty = await context.Parties
                               .Where(b => b.ID == request.ID)
                               .GroupBy(b => b.PartyName)
                               .ToListAsync();

但我得到這個錯誤

System.InvalidOperationException: Client side GroupBy is not supported.

To expand on the github link posted by mjwills, the issues here is there are two different GroupBys you could be executing, a SQL Group By, or a C# LINQ Group By.

這里的一種解決方案是切換調用順序:

var RParty = await context.Parties
                           .Where(b => b.ID == request.ID)
                           .ToListAsync()
                           .GroupBy(b => b.PartyName); // <-- move after ToList

通過調用 ToList 數據將被視為 C# 類型和 LINQ GroupBy function 應該工作。

但是,您需要小心,因為一旦調用 ToList,數據將從數據庫返回並存儲在服務器上的 memory 中。 根據預期的締約方表的大小,它可能會導致性能問題

暫無
暫無

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

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