具有条件C#的EntityFramework计数成员

时间:2016-02-11 10:37:27

标签: c# sql entity-framework linq count

我有一张叫做LiquidatorRepresentative的桌子。该表包含代表的成员ID。 我不知道如何计算LiquidatorRepresentative中有多少条目在C#中使用EntityFramework或LinQ具有相同的RepresentedMemberId

提前致谢。

编辑: 我已经创建了一个列表InfoList,现在问题是检查是否有类型= 15和相同的RepresentedMemberId的条目。我不能使用存储过程,因为程序因为linq而运行缓慢。

4 个答案:

答案 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)