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

时间:2015-06-11 06:21:03

标签: sql entity-framework

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

SQL查询是:

select tblRecordingType_ID
from tblEquipmentReadingTypes
group by tblRecordingType_ID
having count(tblRecordingType_ID) > 0

我写了以下EF查询:

 var items = from o in context.tblEquipmentReadingTypes                            
                        group o by o.tblRecordingType_ID

请告诉我,我如何使用having条款。

由于

2 个答案:

答案 0 :(得分:1)

您可以在where后使用group by并使用into声明:

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

答案 1 :(得分:0)

此:

select tblRecordingType_ID
from tblEquipmentReadingTypes
group by tblRecordingType_ID
having count(tblRecordingType_ID) > 0

相当于:

select tblRecordingType_ID
from tblEquipmentReadingTypes
where tblRecordingType_ID is not null
group by tblRecordingType_ID

所以你可以在linq中写下这样的内容:

var items = from o in context.tblEquipmentReadingTypes 
            where o.tblRecordingType_ID != null                           
            group o by o.tblRecordingType_ID into grouped
            select grouped.Key