我有以下代码,并希望在LINQ中返回此查询的有限子集。有限的子集将u.ID作为函数的参数,并计算与另一个表中的u.ID关联的记录数。
到目前为止,这就是我所拥有的。
var res = from u in db.Users
where id == u.WorkGroupID && jobCount(u.ID) > 0
select
new
{
ArtistID = u.ID,
ArtistName = u.FirstName + " " + u.LastName
};
如何根据与每个u.ID关联的计数值修改此查询以限制返回记录的数量?
编辑:
下面的新查询。最后一行从上一次LINQ查询返回调用者列表。
var res = from u in db.Users
where id == u.WorkGroupID
select
new
{
// SELF
ArtistID = u.ID,
ArtistName = u.FirstName + " " + u.LastName
};
var res2 = res.ToList<dynamic>();
var res3 = from row in res2.AsEnumerable()
where jobCount(row.ArtistID) > 0
select new
{
row.ArtistName,
row.ArtistID
};
return res3.ToList<dynamic>();
答案 0 :(得分:2)
使用群组加入:
from u in db.Users
join o in db.Other on u.ID equals o.UserID into grp
where grp.Any()
select new
{
ArtistID = u.ID,
ArtistName = u.FirstName + " " + u.LastName
};