:Почему репозитории, реализованные с использованием EF, выставляют IQueryable, а не ObjectQuery?
Мои хранилищами всегда возвращает IQueryable. Причиной этого является то, что IQueryable не зависит от EF, тогда как ObjectQuery. Так что если я хочу , то мои другие слои должны быть невежественными, я не хочу вводить зависимости от ObjectQuery.
а) Я предполагаю, что причину, почему хранилища (реализованный с использованием EF) должны возвращать IQueryable
вместо ObjectQuery
потому, что другие OR также использовать запросы, которые возвращают IQueryable
, и при наличии хранилищ возврата IQueryable
мы можем легко переключаться между EF и другими ORMs , без необходимости изменять открытый интерфейс репозитория?
b) Помимо EF и NHibernate, существуют ли какие-либо другие ORM, у которых также есть запросы, которые возвращают IQueryable
?
Спасибо
a) Да b) Список .AsQueryable() может использоваться также для тестирования. Существует также OData (но он поддерживает только крошечное подмножество IQueryable). –
Aron
Благодарим вас за ответ – bckpwrld
Звонок по телефону: http://blog.ploeh.dk/2012/03/26/IQueryableTisTightCoupling/ –