C#LINQ,带有JOIN和GroupBy的脚本引发异常

我正在处理.NET CORE 5平台上的LINQ脚本以及Entity Framework CORE 5.0.8脚本。该脚本与组一起简单左连接,但出现异常,如果不应用组,则我可以看到结果。。。不知道我在拼图中遗漏了什么

exception

could not be translated. Either rewrite the query in a form that can be translated, or switch to client evaluation explicitly by inserting a call to 'AsEnumerable', 'AsAsyncEnumerable', 'ToList', or 'ToListAsync'

code

复制代码
var a1 =
  (from site in db.Sites
  join machine in db.Machines on site.SiteId equals machine.SiteId into sm
  from siteMachines in sm.DefaultIfEmpty()
  where site.SiteId == SiteId
  group siteMachines by site into groupedSiteMachines
  select new
      {
       listedSite = groupedSiteMachines.Key,
       SiteMachines = groupedSiteMachines.FirstOrDefault() == null? null : groupedSiteMachines
      }
  ).ToList() ;
复制代码

在.NET5中,GroupBy不会转换为SQL查询,您应该在GroupBy语句之前使用AsEnumerable.ToList

首先,您应该从SQL读取数据,而不使用任何GroupBy语句,当数据在内存中接收时,使用GroupBy

Microsoft Reference

 

转 https://www.5axxw.com/questions/content/9j38s3

posted @   dreamw  阅读(265)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2021-07-21 vscode格式化html标签属性不换行(vetur插件)
2021-07-21 VSCode 使用Vetur对vue文件进行格式化
2021-07-21 信息搜集一些总结
2021-07-21 程序员腰突经历分享(中)
2021-07-21 Vue权限路由实现总结
2021-07-21 c++中的静态成员
2021-07-21 Spring 的循环依赖问题
点击右上角即可分享
微信分享提示