实体框架对具有条件 C# 的成员进行计数
本文关键字:成员 框架 有条件 实体 | 更新日期: 2023-09-27 18:34:07
我有一个名为LiquidatorRepresentative的表。该表包含表示的成员 ID。我不知道如何使用EntityFramework或LinQ计算LiquidatorRepresentative中有多少条目在C#中具有相同的RepresentMemberId
提前谢谢。
编辑:我已经制作了一个列表 InfoList,现在的问题是检查是否有 Type=15 和相同 RepresentMemberId 的条目。我无法使用存储过程,因为由于 linq 的原因,程序已经运行缓慢。
基本上,您需要的是按表示的成员 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);
}
如果要计算满足条件的实体数,则可以简单地计算:
var count = await (from x in set
where condition(x)
select x).CountAsync();
这将转换为数据库上的select count(1)...
:它只会返回计数,而不是所有数据。
分组按扩展方法应该可以解决问题
var groupCount = db.LiquidatorRepresentative.GroupBy(info => info.RepresentedMemberId)
.Select(group => new {
RepresentedMemberId = group.Key,
Count = group.Count()
});
谢谢你们的帮助。我用我需要检查的内容做了一个列表,而不是 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)