【发布时间】:2022-01-22 21:38:48
【问题描述】:
我想通过employeeId 对员工的加班时间进行分组,并获取employeeNames 和员工每月加班总时长的数据。但是这个 Linq 查询给出了翻译错误。
var results =
from overtime in context.Overtimes
join employeeCredential in context.EmployeeCredentials
on overtime.EmployeeId equals employeeCredential.id
join employeeDetail in context.EmployeeDetails
on employeeCredential.id equals employeeDetail.employeeId
where overtime.Month == month && overtime.Year == year
group new { overtime, employeeCredential, employeeDetail } by overtime.EmployeeId into g
select new MonthlyOvertimeWorkHours
{
EmployeeName = g.First().employeeDetail.employeeName,
TotalWorkHourOfMonth = g.Sum(t => t.overtime.OvertimeWorkHour)
};
错误
{ "error": employeeCredential\r\n IsNullable: True\r\n , \r\n employeeDetail = EntityShaperExpression: \r\n EntityType: EmployeeDetail\r\n ValueBufferExpression: \r\n ProjectionBindingExpression: employeeDetail\r\n IsNullable: True\r\n }\r\n .Select(s => s.employeeDetail.employeeName)\r\n .First()' 可以 不被翻译。要么重写查询形式, 翻译,或通过插入显式切换到客户端评估 调用“AsEnumerable”、“AsAsyncEnumerable”、“ToList”或 'ToListAsync'。 }
【问题讨论】:
-
它给出了什么错误?
-
“错误和失败”,400 美元:“这个查询给出了什么翻译错误?”
-
{ "error": employeeCredential\r\n IsNullable: True\r\n , \r\n employeeDetail = EntityShaperExpression: \r\n EntityType: EmployeeDetail\r\n ValueBufferExpression: \r\ n ProjectionBindingExpression: employeeDetail\r\n IsNullable: True\r\n }\r\n .Select(s => s.employeeDetail.employeeName)\r\n .First()' 无法翻译。以可翻译的形式重写查询,或通过插入对“AsEnumerable”、“AsAsyncEnumerable”、“ToList”或“ToListAsync”的调用显式切换到客户端评估。 }