C# 使用IQueryable的缺点!

C# 使用IQueryable的缺点!,c#,mongodb,ienumerable,iqueryable,C#,Mongodb,Ienumerable,Iqueryable,是否存在与使用IQueryable相关的性能问题? 此外,如果我使用光标而不是使用IQueryable(这样更好)。 IQueryablevsIEnumerablevsIList 我使用MongoDB作为我的数据库。谢谢这些只是不同的接口,因为接口不包含任何实现,所以您使用的性能并不重要 当您在值上循环时,实际类的枚举数将被使用,无论您使用哪个接口访问它。我不知道MongoDB C#绑定是如何工作的,但请描述它通常是如何工作的: 使用IQueryable时,将构造表达式树,然后将其转换为数据库可

是否存在与使用
IQueryable
相关的性能问题?
此外,如果我使用光标而不是使用
IQueryable
(这样更好)。
IQueryable
vs
IEnumerable
vs
IList


我使用MongoDB作为我的数据库。谢谢

这些只是不同的接口,因为接口不包含任何实现,所以您使用的性能并不重要


当您在值上循环时,实际类的枚举数将被使用,无论您使用哪个接口访问它。

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

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

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


使用
IEnumerable时,将使用委托,而不是表达式。它需要迭代整个数据集,然后使用Linq对对象进行过滤。这要慢得多。

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