LINQ ошибка компилятора "does not contain a definition for 'OrderByDescending' ....."
Вот такое запрос:
var entities = await _context.Bookings
.Where(item => item.PatientId == patientId && item.IsBooked == true)
.Select(item => item.OrderByDescending(c => c.SlotId).FirstOrDefault())
.Include(item => item.Doctor)
.ToListAsync();
Ошибка
'Booking' does not contain a definition for 'OrderByDescending' and no accessible extension method 'OrderByDescending' accepting a first argument of type 'Booking' could be found (are you missing a using directive or an assembly reference?)
Пишут, что так бывает если пропустили using System.Linq;, но я не пропустил.
Что делать?
Ответы (1 шт):
Автор решения: Faraday
→ Ссылка
При использовании .Select вы передаёте в лямбду один элемент, т.е., НЕ КОЛЛЕКЦИЮ. Соответственно, метод .OrderByDescending должен вызывать из коллекции для её сортировки
UPD: Т.е., вам нужно вынести этот метод немного выше. Примерно вот так:
var entities = await _context.Bookings
.Where(item => item.PatientId == patientId && item.IsBooked == true)
.OrderByDescending(c => c.SlotId)
.Include(item => item.Doctor)
.ToListAsync();