Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ-基于自定义函数返回的计数限制结果_C#_Linq - Fatal编程技术网

C# LINQ-基于自定义函数返回的计数限制结果

C# LINQ-基于自定义函数返回的计数限制结果,c#,linq,C#,Linq,我有以下代码,并希望在LINQ中返回此查询的有限子集。有限子集将u.ID作为函数的参数,并从另一个表中计算与u.ID关联的记录数 到目前为止,这就是我所拥有的 var res = from u in db.Users where id == u.WorkGroupID && jobCount(u.ID) > 0 select new

我有以下代码,并希望在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>();
var res=from u in db.Users
其中id==u.WorkGroupID
选择
新的
{
//自我
ArtistID=u.ID,
ArtistName=u.FirstName+“”+u.LastName
};
var res2=res.ToList();
var res3=来自res2.AsEnumerable()中的行
其中jobCount(row.ArtistID)>0
选择新的
{
row.ArtistName,
艺术的
};
返回res3.ToList();
使用组连接:

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
};

谢谢科里的回复。我得到了答案。我尝试了我发布的另一种方法(编辑到我的帖子)。我需要验证这是否正常工作,但到目前为止,我没有看到任何计数为0的值。我对LINQ非常陌生,所以我的想法非常原始,并且使用现有的代码。我会继续调查此事。我将投赞成票。也许我的方法有点不必要。我只是将其编辑为使用
Any()
,而不是
Count()>0
。SQL Optimizer可能已经为我修复了它,但理论上它的性能会更好。