ASP NET CORE Entity Framework Выбор с идентификатором GroupBy - PullRequest
0 голосов
/ 26 июня 2018

Я создаю сервис для вызова запроса следующим образом

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

У меня проблема в сумме и группе.Как это сделать в Entity Framework, я попробовал это

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, чтобы возвращать свои данные

Спасибо

1 Ответ

0 голосов
/ 26 июня 2018
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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...