c# - 如何在 linq 或 lambda 表达式中使用 having、group by 和 distinct

标签 c# sql entity-framework linq

我需要将以下查询转换为linqlambda 表达式

 SELECT count(Hid.HouseholdID) FROM
 (SELECT HouseholdID FROM tblTmpJoinAll 
 WHERE loyal = 1 Group By HouseholdId 
 HAVING Count(distinct BasketID)>1) as Hid;

到目前为止,我已经尝试过了

lst.Where(f => f.Flybuys == true)
.GroupBy(h=>h.HouseholdID)
//.Where(x=>x.)// don't know what to right here
.Select(h => h.Key).Count();

最佳答案

我认为这段代码有效。

lst.Where(f => f.Flybuys) // you don't need == true here
   .GroupBy(f => f.HouseholdID)
   .Where(f => f.GroupBy(i => i.BasketID).Count() > 1)
   .Count();

关于c# - 如何在 linq 或 lambda 表达式中使用 having、group by 和 distinct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35764168/

相关文章:

c# - Visual Studio - DDD 模块和洋葱

mysql - 获取表中每个组的最大值

c# - 提供 IDbContextFactory 的实现。但是哪里?

sql - 从具有复合主键的另一个表插入或更新表

mysql - 通过MySQL在两个不同的字段名称中选择多行作为一行

c# - MVC 模型 - 应用程序 (EF) 中的一个或多个 dbcontext

entity-framework - Entity Framework : deleted SQL table is not removed from the model

c# - EF Core 在映射到 Select 中的对象时查询 SQL 中的所有列

C# 运行应用程序

c# - 如何在 C#/中删除根元素