<分区>
我不确定我是否理解 IQueryable
到底是什么。
我知道它不会获取所有实体并将约束部分放在内存中,而是将其作为发送到数据库的命令的一部分执行。
如果我弄错了请纠正我并告诉我,为什么我的存储库函数应该返回 IQueryable
而不是简单的 List
?
<分区>
我不确定我是否理解 IQueryable
到底是什么。
我知道它不会获取所有实体并将约束部分放在内存中,而是将其作为发送到数据库的命令的一部分执行。
如果我弄错了请纠正我并告诉我,为什么我的存储库函数应该返回 IQueryable
而不是简单的 List
?
最佳答案
IQueryable
实际上并不是实体的集合,而是描述了如何获取该集合。除非您通过将数据转换为 IEnumerable
或类似的东西对其进行评估,否则永远不会从源中检索数据。
从您的存储库返回 IQueryable
的优点是您的调用代码可以在查询进入数据库之前指定额外的 .Where
子句。如果您返回一个 IEnumerable
,您的代码将从数据库中检索一个表的所有值,然后在内存中执行过滤,这是低效的。
关于c# - IQueryable 到底是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35542005/