LINQ to Entities не распознает метод ElementAt (i);
Я использую метод elementat(Int32)
для получения определенного элемента результата запроса.
var mds = db.TDP_MissioniDestinazioni.Where(p => p.MissioneID == missioneRow.MissioneID);
destinazioneRow = mds.ElementAt(i);
LINQ to Entities не распознает метод "TimeEntModel.TDP_MissioniDestinazioni ElementAt [TDP_MissioniDestinazioni]
(System.Linq.IQueryable`1 [TimeEntModel.TDP_MissioniDestinazioni], Int32) ', и этот метод не может быть переведен в хранилище выражение.
Почему я получаю эту ошибку и как ее исправить?
Ответы
Ответ 1
Вы счастливы получить все "ранние" результаты? Если да, вызовите ToList()
для их кеширования или AsEnumerable()
, чтобы получить их при каждом вызове, а AsEnumerable
просто способ заставить компилятор вызывать Enumerable.ElementAt
вместо Queryable.ElementAt
.
Может быть, лучший способ (например, использование Take или Skip) - не могли бы вы предоставить больше информации о более крупном изображении?
Ответ 2
Вы можете просто смешать Skip
и First
, чтобы сделать трюк:
mds.Skip(i).First()