【问题标题】:ASP NET CORE Entity Framework Select with GroupBy Id使用 GroupBy Id 选择 ASP NET CORE 实体框架
【发布时间】:2018-06-26 05:56:55
【问题描述】:

我构建了一个服务来调用这样的查询

select quotaId, sum(quota)
From leaveQuota
group by quotaId

我在 sum 和 group 中遇到问题。如何在实体框架中做到这一点 我试过这个

public async Task<List<LeaveTypeModel>> GetLeaveQuota(string employeeId)
{
  var leaveQuota = await DB.EmployeeLeaveQuota
    .Where(Q => Q.EmployeeId == employeeId && Q.ValidUntil >= DateTime.UtcNow)
    .Select(Q => new LeaveTypeModel
    {
        EmployeeLeaveQuotaTypeId = Q.EmployeeLeaveQuotaTypeId,
        QuotaDays = Q.QuotaDays
    })
    .ToListAsync();

    return leaveQuota;
  }

我的模特

public class LeaveTypeModel
{
    public int EmployeeLeaveQuotaTypeId { set; get; }
    public int QuotaDays { set; get; }
}

如果我使用.GroupBy,我无法将其作为我的模型返回,并且我不知道对我的配额日列求和

我知道这是一个基本查询,但我还不熟悉实体框架和 asp.net 核心来返回其数据

【问题讨论】:

标签: asp.net entity-framework linq group-by


【解决方案1】:
var leaveQuota = await DB.EmployeeLeaveQuota
    .Where(Q => Q.EmployeeId == employeeId && Q.ValidUntil >= DateTime.UtcNow)
    .GroupBy(x => x.EmployeeLeaveQuotaTypeId).Select(x => 
    new LeaveTypeModel
    {
        EmployeeLeaveQuotaTypeId = x.Key,
        QuotaDays = x.Sum(y => y.QuotaDays)
    }).ToListAsync();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多