c# - IQueryable 到底是什么意思?

标签 c# entity-framework iqueryable

<分区>

我不确定我是否理解 IQueryable 到底是什么。

我知道它不会获取所有实体并将约束部分放在内存中,而是将其作为发送到数据库的命令的一部分执行。

如果我弄错了请纠正我并告诉我,为什么我的存储库函数应该返回 IQueryable 而不是简单的 List

最佳答案

IQueryable 实际上并不是实体的集合,而是描述了如何获取该集合。除非您通过将数据转换为 IEnumerable 或类似的东西对其进行评估,否则永远不会从源中检索数据。

从您的存储库返回 IQueryable 的优点是您的调用代码可以在查询进入数据库之前指定额外的 .Where 子句。如果您返回一个 IEnumerable,您的代码将从数据库中检索一个表的所有值,然后在内存中执行过滤,这是低效的。

关于c# - IQueryable 到底是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35542005/

相关文章:

c# - 其他项目中缺少 MySQL 连接字符串

c# - Entity Framework 4 Code-First 多对多插入

c# - 如何维护LINQ延迟执行?

c# - 强制 EventProcessorHost 重新传递失败的 Azure 事件中心 eventData 到 IEventProcessor.ProcessEvents 方法

c# - 在 C# 中获取 log4net 日志文件

c# - 在 Visual Studio 2012 解决方案中混合 Visual Studio 2010 和 2012 项目

c# - 返回 IEnumerable<T> 与 IQueryable<T>

c# - CSHTML文件可以直接运行吗?

c# - 如何使用不是第二个对象的主键的键创建导航属性?

c# - Moq 返回自身的 IQueryable