Link:
我的存储库总是返回IQueryable。原因是这样的 IQueryable不依赖于EF,而ObjectQuery则依赖于EF。所以如果我想要的话 我的其他层次是坚持无知我不想介绍 依赖于ObjectQuery。
a)我假设为什么存储库(使用EF实现)应该返回IQueryable
而不是ObjectQuery
,因为其他ORM也使用返回IQueryable
的查询,并且通过使存储库返回{ {1}}我们可以轻松地在EF和其他ORM之间切换,而无需更改存储库的公共接口?
b)除了EF和NHibernate之外,是否有其他ORM也有返回IQueryable
的查询?
谢谢
答案 0 :(得分:0)
你应该返回IQueryable,因为那是表达树的通用语言。如果它不是IQueryable,它可能是其他一些理解Expression的东西,或者它的一些可怕的自定义语言,它给你一个非常低劣的编程经验
var resultsINeed = getQueryable()。Where(expression1).Select(expression2);
如果它理解这里的Expression示例,那么它也可能只是IQueryable,因为它是IQueryable的整个 point - 是一般的抽象,每个人都可以在他们的接口中重用。