如何将此 SQL 查询“翻译”为 Linq Lambda 表达式:
SELECT BN.DEUF,
BN.DESUPERINTENDENCIAREGIONAL,
CR.SITUACAODIVIDA,
COUNT(CR.VLEFETIVAMENTELIBERADO),
SUM(CR.VLEFETIVAMENTELIBERADO)
FROM BENEFICIARIO BN
JOIN CREDITO CR ON BN.CDBENEFICIARIO = CR.CDBENEFICIARIO
GROUP BY BN.DEUF,BN.DESUPERINTENDENCIAREGIONAL, CR.SITUACAODIVIDA
ORDER BY BN.DEUF
到目前为止,我有:
var itens = db.CREDITO
.Join(db.BENEFICIARIO, cr => cr.CDBENEFICIARIO, bn => bn.CDBENEFICIARIO,
(cr, bn) => new { cr, bn })
.GroupBy(cr => cr.VLEFETIVAMENTELIBERADO)
.Select(g => new { VLTOTAL = g.Sum(x => x.VLEFETIVAMENTELIBERADO) })
.ToList();
最佳答案
你只是不在你的 sql 和你的 linq 中做同样的分组。
那么...让我们开始吧!
var itens = db.CREDITO
.Join(db.BENEFICIARIO, cr => cr.CDBENEFICIARIO, bn => bn.CDBENEFICIARIO,(cr, bn) => new { cr, bn })
.GroupBy(x=> new{x.bn.DEUF,x.bn.DESUPERINTENDENCIAREGIONAL, x.cr.SITUACAODIVIDA})
.Select(g => new {
g.Key.DEUF,
g.Key.DESUPERINTENDENCIAREGIONAL,
g.Key.SITUACAODIVIDA,
VLTOTAL = g.Sum(x => x.cr.VLEFETIVAMENTELIBERADO),
Count = g.Count()
})
.ToList();
关于c# - 带有 Lambda 表达式的 LINQ - 连接、分组依据、求和和计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33803708/