3

Я читал при использовании LINQ для entites запрос имеет тип IQueryable, прежде чем он не обрабатывается, но если запрос был обработан, он больше не IQueryable, но ObjectQuery.Возвращение IQueryable против ObjectQuery при использовании LINQ для лиц

В этом случае правильно ли написать методы из моего слоя (слоя репозитория) для возврата IQueryable?

Нужно ли использовать?

Почему я хочу вернуть ObjectQuery?

Я исхожу из LINQ to SQL-фона, где всегда были IQueryable, но EF, похоже, изменил это.

Любая помощь действительно ценится.

ответ

9

Мои репозитории всегда возвращают IQueryable. Причина этого в том, что IQueryable не зависит от EF, тогда как ObjectQuery. Поэтому, если я хочу, чтобы мои другие слои были ненаучными, я не хочу вводить зависимость от ObjectQuery.

ObjectQuery - это реализация IQueryable с несколькими дополнительными функциями. Первая функция, которую вы быстро обнаружите, - это функция Include, которая необходима для активной загрузки свойств навигации (связанных объектов). Вторая особенность - язык запросов EQL - сущность. EQL - второй способ, как вы можете запросить свою концептуальную модель. Он похож на синтаксис SQL. Вы можете написать простой запрос как строку, передать его конструктору ObjectQuery и выполнить запрос или использовать его в Linq-To-Entities.

+0

спасибо .. нормально iqueryable это тогда :-) ... я не думаю, что мне нужна какая-либо предварительная функция objectquery ... ermmm мне нужно отбрасывать .. как от запроса linq к объектам это objectquery, который возвращается ... поэтому, когда я возвращаю объект из моего метода .. мне нужно, чтобы бросить или что-то еще? Еще раз спасибо –

+0

Нет, вам не нужно бросать. –

+0

Спасибо большое! просто то, что мне нужно! –

Смежные вопросы