请求将给定SQL查询语句转换为Lambda表达式
SQL转Lambda表达式实现
假设你使用的是Entity Framework,且已有对应实体类 FundAllotment(映射fund_allotment表)和MlaAcBill(映射mla_ac_bill表),对应的Lambda表达式实现如下:
var result = dbContext.FundAllotment .Join( dbContext.MlaAcBill, a => new { a.AssemblyName, a.FinancialYear }, b => new { b.AssemblyName, b.FinancialYear }, (a, b) => new { a, b } ) .GroupBy( ab => new { ab.a.AssemblyName, ab.a.FinancialYear, ab.a.TotalExpenditure }, ab => ab.b.AcBillAmount ) .Select(g => new { g.Key.AssemblyName, g.Key.FinancialYear, g.Key.TotalExpenditure, TotalAcBill = g.Sum() }) .ToList();
代码说明:
- Join方法:对应SQL的
INNER JOIN,通过匿名对象指定关联的assembly_name和financial_year两个字段 - GroupBy方法:第一个参数对应SQL的
GROUP BY分组字段,第二个参数指定要参与聚合的ac_bill_amount字段 - Select方法:将分组结果映射为包含目标字段的匿名对象,
g.Sum()对应SQL的SUM(b.ac_bill_amount)
若你的实体类属性名与数据库字段名不一致,替换代码中对应的属性名称即可。
内容的提问来源于stack exchange,提问作者Nishant tirkey
相关产品推荐
相关产品推荐

