小编Gin*_*Tez的帖子

EF Core 2.1在子查询时进行本地评估,并在分组后进行聚合

因此,EF Core 2.1会评估SQL Server上的GroupBy LINQ表达式(使用SQL提供程序时).

这很棒但是当查询变得更复杂时我遇到了问题.

用于这些查询的模型是:

public class Invoice
{
    public string Status {get; set;}
    public string InvoiceType {get; set;}
    public decimal InvoicePayments {get; set;}
    public decimal EligibleValue {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

此LINQ语句完全在SQL Server中运行:

data
    .GroupBy(i => new { i.Status, i.InvoiceType })
    .Select(i => new 
    {
        i.Key, 
        Count = i.Count(), 
        Total = i.Sum(x => x.EligibleValue)
    });
Run Code Online (Sandbox Code Playgroud)

并生成以下SQL

SELECT 
    [i].[Status], 
    [i].[InvoiceType], 
    COUNT(*) AS [Count], 
    SUM([i].[EligibleValue]) AS [Col1]
FROM [Invoice] AS [i]
GROUP BY [i].[Status], [i].[InvoiceType]
Run Code Online (Sandbox Code Playgroud)

此LINQ语句有效,但在内存中执行GroupBy : …

c# linq sql-server entity-framework-core

3
推荐指数
1
解决办法
2019
查看次数

标签 统计

c# ×1

entity-framework-core ×1

linq ×1

sql-server ×1