如何在实体框架中使用 Group by 和 Have count 子句

Cod*_*der 5 sql entity-framework

我是新手,entity framework正在尝试将SQL查询转换为entity framework. 但我无法转换该having条款。

SQL查询是:

select tblRecordingType_ID
from tblEquipmentReadingTypes
group by tblRecordingType_ID
having count(tblRecordingType_ID) > 0
Run Code Online (Sandbox Code Playgroud)

我写了以下EF查询:

 var items = from o in context.tblEquipmentReadingTypes                            
                        group o by o.tblRecordingType_ID
Run Code Online (Sandbox Code Playgroud)

请让我知道,我如何使用having此条款。

谢谢

Moh*_*deh 11

您可以使用whereaftergroup by和 usinginto语句:

var items = from o in context.tblEquipmentReadingTypes
            group o by o.tblRecordingType_ID into g
            where g.Count() > 0
            select g;
Run Code Online (Sandbox Code Playgroud)


Gio*_*uri 1

这:

select tblRecordingType_ID
from tblEquipmentReadingTypes
group by tblRecordingType_ID
having count(tblRecordingType_ID) > 0
Run Code Online (Sandbox Code Playgroud)

等价于:

select tblRecordingType_ID
from tblEquipmentReadingTypes
where tblRecordingType_ID is not null
group by tblRecordingType_ID
Run Code Online (Sandbox Code Playgroud)

所以你可以在中写这样的东西linq

var items = from o in context.tblEquipmentReadingTypes 
            where o.tblRecordingType_ID != null                           
            group o by o.tblRecordingType_ID into grouped
            select grouped.Key
Run Code Online (Sandbox Code Playgroud)