LINQ к Объектам не распознает метод ElementAt (i);

Я использую метод elementat(Int32) получить определенный элемент результата запроса.

var mds = db.TDP_MissioniDestinazioni.Where(p => p.MissioneID == missioneRow.MissioneID);  

destinazioneRow = mds.ElementAt(i);

LINQ к Объектам не распознает метод 'TimeEntModel. TDP_MissioniDestinazioni ElementAt [TDP_MissioniDestinazioni]
(Система. Linq. IQueryable '1 [TimeEntModel. TDP_MissioniDestinazioni], Int32)', метод и этот метод не могут быть переведены в выражение хранилища.

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

15
задан chakeda 16 August 2017 в 20:42
поделиться

2 ответа

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

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

22
ответ дан 1 December 2019 в 00:45
поделиться

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

mds.Skip(i).First()
21
ответ дан 1 December 2019 в 00:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: