【发布时间】:2021-08-18 20:42:10
【问题描述】:
需要帮助在 c# 中将 sql 转换为 linq
SELECT SUM(CASE WHEN Evaluation.StatusId = 3 THEN 1 END)AS EvalutionOK,
SUM(CASE WHEN Evaluation.StatusId = 4 THEN 1 END) AS EvalutionTodo,
SUM(CASE WHEN Evaluation.StatusId = 2 THEN 1 END) AS EvalutionNOk
FROM Investor
INNER JOIN Evaluation ON Evaluation.InvestorId = [dbo].[Investor].Id
Sql 结果:
评估OK 评估Todo 评估NOk 5 0 0
List<Investor> Investors = ObjectSet.Include(z =>z.Evaluation).ToList();
var test = from i in Investors
select new TestModel
{
EvalutionTodo = i.Evaluation.Sum(e => e.StatusId == 3? 1 : 0),
EvalutionOK = i.Evaluation.Sum(e => e.StatusId == 4? 1 : 0),
EvalutionNOk = i.Evaluation.Sum(e => e.StatusId == 2? 1 : 0),
};
C# 结果:
TestModel的结果列表
评估OK 评估Todo 评估NOk 1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
我错过了什么?有什么帮助吗?
谢谢
【问题讨论】:
-
from i in Investors -> 您正在迭代任何单个项目。