首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >.ToList()、.AsEnumerable()、AsQueryable()之间有什么区别?

.ToList()、.AsEnumerable()、AsQueryable()之间有什么区别?
EN

Stack Overflow用户
提问于 2018-03-26 07:14:57
回答 2查看 0关注 0票数 0

我知道LINQ到实体和LINQto对象的一些不同之处,这是第一个实现的。IQueryable和第二个工具IEnumerable我的问题范围在EF 5之内。

我的问题是,这三种方法的技术区别是什么?如.ToList().AsQueryable()

  1. 这些方法到底意味着什么?
  2. 是否有任何性能问题或某些东西会导致使用一个而另一个?
  3. 为什么一个人会使用,例如,.ToList().AsQueryable()而不是.AsQueryable()?
EN

Stack Overflow用户

发布于 2018-03-26 17:00:19

ToList()

  • 立即执行查询

AsEnDigable()

  • 延迟(稍后执行查询)
  • 参数:Func<TSource, bool>
  • 负载每一个记录到应用程序内存,然后处理/过滤它们。*从表1到内存,然后选择第一个X元素(在本例中,它所做的:Linqto-SQL+Linqto-Object)

AsQueryable()

  • 延迟(稍后执行查询)
  • 参数:Expression<Func<TSource, bool>>
  • 将表达式转换为T-SQL(与特定提供程序一起),远程查询并将结果加载到应用程序内存中。
  • 这就是为什么DbSet(在实体框架中)也继承了IQueryable来获得高效的查询。
  • 不要加载每条记录,例如,如果采取(5),它将生成选择前5*后台的SQL。这意味着这种类型对SQL数据库更友好,这就是为什么这种类型通常具有更高的性能,并且在处理数据库时推荐使用。
  • 所以AsQueryable()通常比AsEnumerable()因为它首先生成T-SQL,其中包括Linq中的所有WHERE条件。
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档