Подтвердить что ты не робот

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) ', и этот метод не может быть переведен в хранилище выражение.

Почему я получаю эту ошибку и как ее исправить?

4b9b3361

Ответ 1

Вы счастливы получить все "ранние" результаты? Если да, вызовите ToList() для их кеширования или AsEnumerable(), чтобы получить их при каждом вызове, а AsEnumerable просто способ заставить компилятор вызывать Enumerable.ElementAt вместо Queryable.ElementAt.

Может быть, лучший способ (например, использование Take или Skip) - не могли бы вы предоставить больше информации о более крупном изображении?

Ответ 2

Вы можете просто смешать Skip и First, чтобы сделать трюк:

mds.Skip(i).First()