2014-01-27 4 views
1

Я написал следующий запросПолучить Макс Дата с Linq

var vehicleQuery = VehicleRepository.Where(o => o.IsActive && o.IsVisible); 

var tempdate = vehicleQuery 
    .Select(x => x.Images 
     .Where(y => y.IsActive && y.IsVisible) 
     .Max(u => u.CreationDate) 
    ); 

Как я получить максимальную CreationDate от изображения лица?

ответ

1

Вы можете использовать SelectMany;

var tempdate = vehicleQuery 
    .SelectMany(x => x.Images 
         .Where(i => i.IsActive && i.IsVisible) 
         .Select(i => i.CreationDate)) 
    .Max(); 

Редактировать

Ошибка получилось:. = «Бросок к типу значения„System.DateTime“не удалось, поскольку материализованная значение равно нулю либо тип результата в общий параметр или запрос должен использовать тип с нулевым значением ".

CreationDate Может быть, это обнуляемым тип, и вы должны проверить, что:

var tempdate = vehicleQuery 
    .SelectMany(x => x.Images 
         .Where(i => i.IsActive && i.IsVisible && i.CreationDate.HasValue) 
         .Select(i => i.CreationDate)) 
    .Max(); 
+0

Ошибка: = «бросок к типу значения„System.DateTime“не удалось, так как материализованная значение равно нулю либо универсальный параметр типа результата или запрос должен использовать обнуляемого типа..» – ujjaval

+0

@ujjaval: Возможно, CreationDate является типом NULL, отредактировал мой ответ. –

+0

Я пробовал, но все же тот же, что и у публики DateTime CreationDate {get; задавать; } – ujjaval

0

Если вы ищете одну дату макс, вы должны будете использовать SelectMany для выравнивания изображения транспортных средств, в одной последовательности: у

vehicleQuery.SelectMany(v => v.Images).Where(img => img.IsActive && img.IsVisible).Max(img => img.CreationDate); 
+0

Я столкнулся с ошибкой: - «либо общий параметр типа результата, либо запрос должны использовать тип с нулевым значением». – ujjaval

Смежные вопросы