我有以下SQL查询
select M.* from Department M
join
(select StudentId,max(Created) Created from Department
where Type = 'New'
group by StudentId
)
A
on M.StudentId= A.StudentId AND M.Created = A.Created
为此我创建了以下EF linq
(from mmfcl in _Context.Department
join filtermmfcl in ( _Context.Department
.Where(mmfcl => mmfcl.Type == "New")
.GroupBy(mmfcl => mmfcl.StudentId)
.Select(mmfcl => new
{
StudentId= mmfcl.Key,
Date = mmfcl.Max(cl => cl.Created)
}).ToList()
)
on new { mmfcl.StudentId, mmfcl.Created } equals
new { filtermmfcl.StudentId, filtermmfcl.Date }
Select mmfcl);
使用此查询,我在Join关键字附近遇到编译时错误。
join子句中某个表达式的类型不正确。调用“加入'
”时,类型推断失败
答案 0 :(得分:0)
我找到了答案。 实际上问题出现在Clause上。
new { mmfcl.StudentId, mmfcl.Created }
应与
相等new { filtermmfcl.StudentId, filtermmfcl.Date }
关于数据类型和名称。
所以我改变了下面的条款并且工作正常
new { mmfcl.StudentId, mmfcl.Created } equals new { filtermmfcl.StudentId,
filtermmfcl.Created }.