C# C Linq表达式不能在数据结果中循环?

C# C Linq表达式不能在数据结果中循环?,c#,linq,.net-core,linq-to-entities,C#,Linq,.net Core,Linq To Entities,我试图循环通过IQueryable结果数据,但循环时出错 var pivot = from f in query group f by new { Account = f.Account } into g select ne

我试图循环通过IQueryable结果数据,但循环时出错

        var pivot =  from f in query
                     group f by new
                     {
                         Account = f.Account
                     }
                    into g
                     select new
                     {
                         Account = g.Key.Account,
                         Com = g.Where(d => d.Party == "Com").Sum(d => d.Amount),
                     };


        foreach (var item in pivot)
        {
            Console.WriteLine($"\t {item.Account} {item.Com}");
        }
我只是想在我操作数据之后看看数据是什么

我收到的错误消息是:

System.InvalidOperationException异常

LINQ表达式的处理 'AsQueryableWhere\r\n来源: 导航树表达式\r\n值: 默认分组\r\n 表达式:未处理的参数:e6\r\n谓词:d=> d、 参与方==\Com\'由“NavigationExpandingExpressionVisitor”指定 失败。这可能表明EF核心中存在缺陷或限制。看见 欲知详情 信息

下面是用于创建查询的查询


错误消息本质上是说LINQtoEntities无法将表达式充分转换为SQL。它必须将整个数据集加载到内存中进行处理。错误消息中的链接详细介绍了值得一读的问题

此错误是EF Core 3.0中的新错误。以前,EF会悄悄地将数据集加载到内存中,这通常会导致开发人员在没有意识到的情况下编写低效的查询

尝试通过将where子句移动到查询中group by之前来简化查询

这个表达式可能不是你所需要的,但我认为它很接近

在查询中从f开始 其中f.Party==Com 按f分组。按g分组 选择新{Account=g.Key,Com=g.Sumd=>d.Amount}
错误消息本质上是说LINQtoEntities无法将表达式充分转换为SQL。它必须将整个数据集加载到内存中进行处理。错误消息中的链接详细介绍了值得一读的问题

此错误是EF Core 3.0中的新错误。以前,EF会悄悄地将数据集加载到内存中,这通常会导致开发人员在没有意识到的情况下编写低效的查询

尝试通过将where子句移动到查询中group by之前来简化查询

这个表达式可能不是你所需要的,但我认为它很接近

在查询中从f开始 其中f.Party==Com 按f分组。按g分组 选择新{Account=g.Key,Com=g.Sumd=>d.Amount}
你有什么错误?请把它添加到问题中添加它,在bottom@NoobCoder请发布用于创建查询的代码variable@RonanThibaudau我在底部加了它。你有什么错误?请把它添加到问题中添加它,在bottom@NoobCoder请发布用于创建查询的代码variable@RonanThibaudau我已经在底部添加了它。谢谢你的信息,一旦声明了,它就更清晰了。我本来会做f.Pary==Com的,但是我需要在某个时候使用更多的party。谢谢你提供的信息,一旦声明出来,它就更加清晰了。我本来会做f.Pary==Com的,但我需要在某个时候使用更多的party
var query = from inn in db.InputTE.Take(getRecord)
                         join y in db.InputYEM on inn.YPerform equals y.YPerform
                         select new StageTwo
                         {
                             Party = inn.Party,
                             Account = y.Account,
                             Amount = inn.Amount
                         };