作者: BigLoser 访问次数: 744 创建时间: 2020-04-21 14:30:06 更新时间: 2024-04-26 01:09:58
理解.NET中的IEnumerable 和 IQueryable
在应用到IEnumberable 和IQueryable两个接口时,代码往往很相似,从而造成了很多困惑,然后事实上他们两是有很大的区别的,各种都有自己特定的使用场景。
下面是IEnumberable和IQueryable的属性对比:
比较项 | IEnumerable | IQueryable |
---|---|---|
Namespace | System.Collections Namespace | System.Linq Namespace |
继承于 | No base interface | 继承于 IEnumerable |
Deferred Execution | 支持 | 支持 |
Lazy Loading | 不支持 | 支持 |
如何工作 | 当从数据库中查询数据,IEnumberable在服务器端执行查询操作,下载数据到客户端的内存中,然后再筛选数据,因此这个操作需要更多的工作而变得缓慢。 | 当从数据库中查询数据,IQueryable在服务器端根据所有的filter条件执行查询操作,因此该操作需要更少的工作而运行快。 |
适用于 | LINQ to Object and LINQ to XML queries. | LINQ to SQL queries. |
Extension mehtod parameter | Extension methods supported | Extension methods in IEnumerable takes functional objects. |
使用场合 | 当从内存中的数据集合(如LIst,Array etc)查询数据的时候 | 当查询非内存中的数据集合(如远程数据库,service等)时。 |
最常使用 | 内存遍历 | Paging |
语言: zh-CN
翻译人员:
原作者:
转载地址:
源网址: https://www.jianshu.com/p/0d497bfa341b
版权: 本站所有内容, 版权归原作者所有。发表原创内容将会获得现金奖励, 并且随着时间倍数增长, 请了解我们的内容奖励计划。