我有一张叫做LiquidatorRepresentative的桌子。该表包含代表的成员ID。 我不知道如何计算LiquidatorRepresentative中有多少条目在C#中使用EntityFramework或LinQ具有相同的RepresentedMemberId
提前致谢。
编辑: 我已经创建了一个列表InfoList,现在问题是检查是否有类型= 15和相同的RepresentedMemberId的条目。我不能使用存储过程,因为程序因为linq而运行缓慢。
答案 0 :(得分:2)
基本上,您需要的是按代表成员ID对数据进行分组,然后计算每个组中的项目。代码类似于:
var groups = liquidatorRepresentative.GroupBy(lr => lr.RepresentedMemberId).Select(group => new { Id = group.Key, Count = group.Count() })
foreach (var group in groups)
{
Console.WriteLine("{0} {1}", group.Id, group.Count);
}
答案 1 :(得分:1)
如果您想要计算满足条件的实体数量,那么您可以简单地计算:
var count = await (from x in set
where condition(x)
select x).CountAsync();
这将在数据库中转换为select count(1)...
:它只会返回计数,而不是所有数据。
答案 2 :(得分:0)
Groupby扩展方法应该做的伎俩
var groupCount = db.LiquidatorRepresentative.GroupBy(info => info.RepresentedMemberId)
.Select(group => new {
RepresentedMemberId = group.Key,
Count = group.Count()
});
答案 3 :(得分:0)
谢谢你的帮助。 我创建了一个列表,其中包含我需要检查的内容,而不是forEach,我带来了元素中的第一个条目。 此代码适用于我需要的内容,感谢您的帮助。
if(InfoList.Where(adx => adx.Id == element.Id && adx.Type == "15").Count() > 1
|| InfoList.Where(adx=adx.Id == element.Id && adx.Type == "16").Count() > 1)