Лямбда присоединиться к группе, где вопрос пункта - PullRequest
0 голосов
/ 10 октября 2018

Почему я получаю только одну запись в списке DownTimeDetails, хотя в данных у нас есть 3 записи.

VehicleEventDetails Res = dbEntity.DownTimeHeaders
              .Join(dbEntity.DownTimeDetails, dth => dth.DownTimeHeaderID, dtd => dtd.DownTimeHeaderID, (dth, dtd) => new { dth, dtd })
              .Where(x => x.dth.DownTimeHeaderID == 42)
              .GroupBy(gx => gx.dtd.DownTimeDetailID)
              .Select(t => new VehicleEventDetails()
              {
                  BookingId = t.Select(a => a.dth.BookingId).FirstOrDefault(),
                  DownTimeDetails = t.Select(ab => new DownTimeDetails
                  {
                      LocalDTStartTime = (DateTime)ab.dtd.LocalDTStartTime,
                      LocalDTEndTime = (DateTime)ab.dtd.LocalDTEndTime,
                      CalculatedEventDTReason = ab.dtd.CalculatedEventDTReason,
                      CalculatedEventDTInMinutes = (int)ab.dtd.CalculatedEventDT,
                  }).ToList()
              }).FirstOrDefault();

1 Ответ

0 голосов
/ 10 октября 2018

Вы ищете что-то вроде этого:

VehicleEventDetails Res = dbEntity.DownTimeHeaders
    .Where(x => x.DownTimeHeaderID == 42)
    .Select(x => new VehicleEventDetails
    {
        BookingId = x.BookingId,
        DownTimeDetails = x.DownTimeDetails
            .Select(dtd=> new DownTimeDetails
            {
                LocalDTStartTime = (DateTime)dtd.LocalDTStartTime,
                LocalDTEndTime = (DateTime)dtd.LocalDTEndTime,
                CalculatedEventDTReason = dtd.CalculatedEventDTReason,
                CalculatedEventDTInMinutes = (int)dtd.CalculatedEventDT,
            })
            .ToList()
    })
    .FirstOrDefault();

Примечания:

  • Использование .Join является шаблоном Anti-Entity Framework.Всегда пытайтесь использовать свойства навигации, они существуют по определенной причине.
  • Не используйте .GroupBy, если вам не нужна группа.Вам не нужно группировать в этом запросе.
  • В качестве общего замечания, постарайтесь не вводить имена переменных-выражений в замешательство.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...