例如,使用EF5,我可以这样做:
var result = (from p in entity.person
join d in entity.dept on p.IdDept equals d.Id
into dp from d in DefaultIfEmpty()
select {
IdPerson = p.Id,
Depts = dp.Select(r => r.DepName).Distinct()
}).ToList()
这只是一个丑陋的示例,但效果很好,使用'into dp'使我可以操纵结果并进行自己的分组,而不必使用'group by'语句。
现在假设我只有一个表,并且我想使用into语句:
var result = (from p in entity.person into pp ...
select {
something = pp.Select(r=> ...
}).ToList()
在使用单个表时,此处的in语句给出了编译错误:
查询主体必须以select子句或group子句结尾
有人可以向我解释为什么吗?
答案 0 :(得分:0)
我不确定您要在这里实现什么,但是根据我的经验,在linq中,into
语句通常用于左连接。对于单个表,您可以再次直接使用实体,例如:
var result = (from p in entity.person
select {
something = entity.person.Select(r=> ...
}).ToList()