使用IQueryable的缺点!

时间:2011-01-21 11:52:31

标签: c# mongodb ienumerable iqueryable

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

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:4)

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

使用IQueryable时,构造表达式树,然后翻译成数据库可以理解的格式,然后在数据库服务器中执行。

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

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