Синтаксис запроса Entity Framework - PullRequest
0 голосов
/ 20 ноября 2011

У меня проблема с запросом

Мне нужно вынуть SHIPMENT из GetAllOrderData - там же, где вы можете найти POD_DATE и RECEIVE_NAME ... но я получаюошибка

Ошибка 1 Имя 'x' не существует в текущем контексте

Мой код:

public IEnumerable<ReportItemDTO> GetTaskProgress(DateTime targetDate)
{
   try
   {
      var startDate = targetDate.Date;
      var endDate = startDate.AddDays(1);
      OrderDataRepository rep = new OrderDataRepository();

      var query = rep.GetAllOrderData()
                  .Where(x => x.POD_DATE >= startDate && x.POD_DATE <= endDate)
                  .GroupBy(o => o.User)
                  .Select(g => new ReportItemDTO
                    {
                      DriverId = g.Key.Id,
                      PdriverName = g.Key.Name,
                      OrderCount = g.Count(),
                      ReportedOrdersCount = g.Count(o => o.RECEIVE_NAME != null),
                      SHIPMENT = (x.SHIPMENT)
                    } );

      return query;

1 Ответ

1 голос
/ 20 ноября 2011
  SHIPMENT = (x.SHIPMENT)

Что ж, вы попали в группу, когда пытаетесь выполнить это назначение - в каждой группе много отправлений, а не одна - фактически все отправления для этого конкретного пользователя. Предполагая, что вы хотите коллекцию из них, вы можете сделать:

Shipments = g.Select( x=> x.SHIPMENT)

Edit:

Если вы просто хотите первую отправку для каждого пользователя (несколько нелогично, но соответствует вашей модели данных):

SHIPMENT = g.Select( x=> x.SHIPMENT).First()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...