Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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# 找到最大的求和值并取3_C#_.net_Linq_Nhibernate - Fatal编程技术网

C# 找到最大的求和值并取3

C# 找到最大的求和值并取3,c#,.net,linq,nhibernate,C#,.net,Linq,Nhibernate,我有这段代码(不确定它是否有效,因为我无法测试它): var test=base.UnitOfWork.Session.Query() .其中(x=>x.nutrionalserving.Id==servingId) .GroupBy(x=>x.UserVerifiedFacts) .OrderByDescending(x=>x.Sum(e=>e.UserVerifiedFacts.Count()) .采取(3) .选择(r=>new { c=右键, Sum=r.Sum(x=>x.UserVer

我有这段代码(不确定它是否有效,因为我无法测试它):

var test=base.UnitOfWork.Session.Query()
.其中(x=>x.nutrionalserving.Id==servingId)
.GroupBy(x=>x.UserVerifiedFacts)
.OrderByDescending(x=>x.Sum(e=>e.UserVerifiedFacts.Count())
.采取(3)
.选择(r=>new
{
c=右键,
Sum=r.Sum(x=>x.UserVerifiedFacts.Count())
})
.ToList();
我想做的是找到所有的
营养事实
,它们都有正确的
服务ID
。然后,我想计算每个
营养学事实
发现的用户验证信息的数量。然后我想得到前3个结果并使用它们

我现在所做的会导致一个“未实现”错误,这显然是因为nhibernate sum只能处理任何参数

我想试试:

var test = ...Query<NutritionFact>()
             .Where(x => x.NutritionalServing.Id == servingId)
             .Select(x=> new { Nf= x, VfCount= x.UserVerifiedFacts.Count() })
             .OrderByDescending(x => x.VfCount))
             .Take(3)
             .ToList();

你能把涉及到的课程和它们之间的关系贴出来吗。我不知道如果没有这个,我如何查询“有多少用户验证了信息”。Ok。我将发布一个带有显示键的表的屏幕截图(否则也必须是无用的列)。
var test = ...Query<NutritionFact>()
             .Where(x => x.NutritionalServing.Id == servingId)
             .Select(x=> new { Nf= x, VfCount= x.UserVerifiedFacts.Count() })
             .OrderByDescending(x => x.VfCount))
             .Take(3)
             .ToList();
SELECT TOP 3 n.*, 
       (SELECT COUNT(*) FROM UserVerifiedFact uv WHERE uv.NuturitionFacts_Id = n.Id) AS NumbOfVer  
       FROM NutritionFact n 
       WHERE n.NutritionalServing_Id = @servingId
       ORDER BY NumbOfVer DESC