【问题标题】:disadvantages of using IQueryable !使用 IQueryable 的缺点!
【发布时间】:2011-01-21 11:52:31
【问题描述】:

是否存在与使用 IQueryable 相关的性能问题?
此外,如果我使用游标而不是使用 IQueryable(这样更好)。
IQueryable vs IEnumerable vs IList
我使用 MongoDB 作为我的数据库。谢谢你

【问题讨论】:

  • 您最大的性能问题可能是 MongoDB,在您开始担心 .Net 之前,我会先看看那里。

标签: c# mongodb ienumerable iqueryable


【解决方案1】:

我不知道 MongoDB C# 绑定是如何工作的,但请描述一下它通常是如何工作的:

当使用IQueryable 时,会构建一个表达式树,然后将其转换为数据库可以理解的格式,然后在数据库服务器中执行。

与直接以数据库理解的格式编写查询相比,这通常具有较小的开销(构建表达式树并翻译它)。

IEnumerable 使用委托,而不是表达式。它需要遍历整个数据集,然后使用 Linq-To-Objects 进行过滤。这要慢得多。

【讨论】:

    【解决方案2】:

    这些只是不同的接口,并且由于接口不包含任何实现,因此您使用的性能并不重要。

    当您遍历这些值时,将使用实际类的枚举器,而不管您使用哪个接口来访问它。

    【讨论】:

      猜你喜欢
      • 2011-05-16
      • 2021-03-06
      • 2013-12-02
      • 2020-05-12
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      • 2017-08-29
      • 1970-01-01
      相关资源
      最近更新 更多