#c# #linq
#c# #linq
Вопрос:
У меня возникла эта проблема с выбором элементов. На данный момент я использую этот запрос:
var eventQuery = dbContext.ClientEvents
.Where(f => f.ClientEventStatusLogs.Any(e => e.StatusId == 2))
.Select(TransformEvent());
ClientEvents
это список событий, и у каждого события может быть другой список ClientEventStatusLogs
. Большую часть времени этот запрос работает нормально. Но если у меня есть новое ClientEventStatusLogs
в этом событии с StatusId
не 2, оно все равно даст мне это ClientEvent
из-за ЛЮБОГО. ClientEventStatusLogs
есть столбец даты, поэтому я хотел бы проверить if StatusId == 2
только последний журнал.
Я надеюсь, вы понимаете мою проблему.
Ответ №1:
Звучит так, как будто вы хотите
dbContext.ClientEvents.Where(
f => f.ClientEventStatusLogs
.OrderByDescending(e => e.Date)
.FirstOrDefault()?.StatusId == 2)
Просто измените Date
на любое имя свойства date.