Сериализация IQueryable <T>на сервере состояний сеанса - PullRequest
3 голосов
/ 25 августа 2011

Как сохранить запрос LINQ (т. Е. Типа IQueryable<T>) в состоянии сеанса SQL Server или на любом другом сервере состояний?

Ответы [ 3 ]

3 голосов
/ 25 августа 2011

Вы не можете сериализовать IQueryable, но вы можете сериализовать дерево выражений, которое генерирует это IQueryable. Ознакомьтесь со следующим вопросом и связанной ссылкой MSDN.

Можете ли вы передать Func через службу WCF?

http://archive.msdn.microsoft.com/exprserialization

2 голосов
/ 25 августа 2011

Вы можете сериализовать / десериализовать вручную выражение , связанное с IQueriable, используя посетитель

Или проверьте здесь: http://archive.msdn.microsoft.com/exprserialization

0 голосов
/ 25 августа 2011

Насколько я знаю, большинство реализаций IQueryable не сериализуемы, поэтому вы не можете этого сделать.Но в любом случае, зачем вам это нужно?Если вы хотите сохранить результаты запроса, просто вызовите ToList для запроса и сохраните результат в сеансе

...