以下代码失败:
Iqueryable<shift> list = null;
list = context.shifts.Where(o => o.create_date == date).GroupBy(m => m.empId).select(
g=>
new{
empId = g.Key,
time = g.Sum(s => s.hours) // need to calculate sum of hours worked in each employee
}
);
它会导致报告以下错误:
Cannot implicitly convert type 'System.Linq.IQueryable' to 'System.Data.Entity.shift'
答案 0 :(得分:1)
如果我理解正确,您希望根据班次表生成一些组值。
您遇到的问题是Select方法返回一个新的匿名类型,并尝试将其分配给IQueryable<shift>
你可以使用评论中提到的var
,或者你可以创建一个新类型并使用它而不是匿名的,如下所示
public class ShiftGroup
{
public int EmpId { get; set; }
public int TotalHours { get; set; }
}
IQueryable<ShiftGroup> result = context.shifts.Where(o => o.create_date == date).GroupBy(m => m.empId).select(
g=>
new ShiftGroup {
EmpId = g.Key,
TotalHours = g.Sum(s => s.hours) // need to calculate sum of hours worked in each employee
}
);