Linq和Core简单where子句和投影问题

wn9m85ua  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(128)

一个简单的where子句无法返回〈〉h__TransparentIdentifier...

from ts in TimeSpentQuery
              .Where(z => z.JobId.HasValue ? z.JobId.Value != 0 ?
                          z.JobId.Value==j.JobId : false : false)

列表在此处创建

var TimeSpentQuery = (from js in context.TblTechnicianRecords.ToList()
    group js by js.JobId into g
    select new { JobId = g.Key, TimeSpent = g.Sum(x => x.EndTime.HasValue ? x.EndTime.Value.Ticks - x.StartTime.Ticks : 0) }).DefaultIfEmpty();

错误状态

InvalidOperationException: The LINQ expression '<>h__TransparentIdentifier7 => __TimeSpentQuery_0 .Where(z => z.JobId.HasValue ? z.JobId.Value != 0 ? z.JobId.Value == - then list a pile TransparentIdentifier-<>h__TransparentIdentifier0.j.JobId : False : False)'

对于一个简单的where子句,这给我带来了各种各样的悲伤,我错过了什么?

91zkwejq

91zkwejq1#

看来dot net的核心,Entity Framework(EF)和C#在构建复杂查询时存在多个LINQ from调用的问题(遗留数据)。我最终通过多个列表使用简单连接创建了数据。所有之前的from语句都显示为〈〉h__TransparentIdentifier,并且在处理EF时似乎表现良好。但给定本地列表,系统抛出了上述错误,这是可以理解的,因为SQL编译器不知道列表,我希望LINQ将编译为一组子查询,而不是试图形成一个单一的查询。

相关问题