L2S, кеширование и ошибка: результаты запроса не могут быть перечислены более одного раза - PullRequest
0 голосов
/ 11 июля 2010

У меня довольно сложный запрос (который включает табличную функцию, позволяющую осуществлять полнотекстовый поиск), который я пытаюсь кэшировать (HttpRuntime.Cache) для целей подкачки.Когда я пытаюсь использовать кэшированный запрос L2S, я получаю ошибку, указанную выше: результаты запроса нельзя перечислить более одного раза.

Я попытался назначить свой запрос другому объекту IQueryable, вызвав AsIQueryable ()кэшированный объект, но это не помогает.

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 11 июля 2010

Вы можете сохранить результаты запроса в кеше вместо самого запроса, вызвав .ToArray() или .ToList() методы расширения, которые немедленно выполнят запрос.Затем вы можете перечислять результаты из кэша столько, сколько хотите.

0 голосов
/ 11 июля 2010

использование

var retVal = (.....). First () или ToList ();

и используйте retVal.Name, retVal.Surname ....

если вы используете ToList (); вам нужно указать индекс, такой как retVal [1] .Name

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...