我需要在我的项目中使用实体框架进行以下查询..这是来自sql server的查询
select sum(case when beef_dairy_stat = 1 and param_id = 1 then 1 else 0 end) as ctn
from user_behave_fact
group by (year(fact_date))
go
这就是我试过的:\
fee_ctn = db.user_behave_fact.Sum(x=> x.beef_dairy_stat == true && x.param_id == 16 ? 1 : 0).GroupBy(y => y.fact_date.Value.Year).Select(y => y.Count()).ToList();
我不熟悉linq查询....上面的sql server查询给了我
eg: 0 //count for year 2017
15 //count for year 2018
以及为什么我在我的sql查询中需要这种情况=> query to select count of records for each year
答案 0 :(得分:0)
您需要在EF中撤消GroupBy
和Sum
。您也可以直接在Count
内使用条件:
fee_ctn = db.user_behave_fact
.GroupBy(y => y.fact_date.Value.Year)
.Select(y => y.Count(x=> x.beef_dairy_stat == true && x.param_id == 16))
.ToList();