【问题标题】:Convert SQL query to linq in C# with Entity Framework使用实体框架在 C# 中将 SQL 查询转换为 linq
【发布时间】:2020-04-30 16:35:21
【问题描述】:

我需要将以下查询转换为 C# 中的 linq。有人可以分享一个免费的在线工具,或者如果你在 linq 中有很好的命令,那么请用 C# 支持 linq 重写。

select 
    PaymentHolidayReason as Reason, 
    EmploymentStatus, 
    Cast(count(1) as Decimal) as Count, 
    Cast((select count(1) 
          from MortgageApplications MortgageApps
          where PaymentHolidayReason is not null 
            and EmploymentStatus is not null) as Decimal) as Total
from 
    MortgageApplications MortgageApps
where 
    PaymentHolidayReason is not null
group by 
    PaymentHolidayReason, 
    EmploymentStatus

【问题讨论】:

    标签: c# sql entity-framework linq


    【解决方案1】:

    我建议您尝试使用 LinqPad 并参考以下链接:http://www.linqpad.net 如果不满意试试:http://www.sqltolinq.com 但我更喜欢 LinqPad

    【讨论】:

    • linqpad 无法安装在我的 mac 机器上。
    【解决方案2】:

    我写了下面的查询,它的工作方式与上面的 sql 语句相同。

    var totalCount = _caseManagerContext.MortgageApplications.Where(x => x.PaymentHolidayReason != null && x.EmploymentStatus != null).Count();
            var result = from mapp in _caseManagerContext.MortgageApplications
                         where mapp.EmploymentStatus!=null && mapp.PaymentHolidayReason!=null &&
                         mapp.LastModifiedDate >= initialDate && mapp.LastModifiedDate <= finalDate
                         group mapp by new { mapp.PaymentHolidayReason, mapp.EmploymentStatus } into g
                         select new { g.Key.PaymentHolidayReason, g.Key.EmploymentStatus, MyCount = g.Count(), Total=totalCount };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多