- C# 类型转换
- seo-Url优化
- 微信小程序的UnionID详解和使用场景
- C# winform中textbox编辑框控件中只允许输入时间的实现
- 大站做内链小站做外链
- 8个最热门的微信小程序 UI 组件库
- app上架需要办理什么资质呢?
- sql语句函数大集合之事务、游标、存储过程及触发器
- php中的is_writable函数怎么用
- 手机wap网站首页宽度和长度统计分析
邮箱:
手机:15383239821
IEnumerable与IQueryable区别
1、IEnumerable 和 IQueryable的相同点
使用LINQ时,您会发现返回值IEnumerable和IQueryable,两者都对列表数据进行查询等操作。
IEnumerable和IQueryable是继承的关系,IQueryable 接口继承 IEnumerable 接口。
2、IEnumerable 和 IQueryable的区别
IEnumerable 和 IQueryable 都是 .NET 框架中提供的接口,用于表示可枚举的集合。但是,它们之间存在一些关键的区别。
IEnumerable 是所有可枚举对象的基接口,包括数组、集合、字符串等。它定义了基本的枚举操作,例如 GetEnumerator() 和 Count()。
IQueryable 是 IEnumerable 的扩展接口,它提供了 LINQ 查询的支持。IQueryable 中的查询操作会生成一个表达式树,该表达式树在执行时会转换为 SQL 查询。
假设数据库中有 1000 行。如果要使用 IEnumerable 创建这些行,.NET 会将所有行读取到内存中。它的写入、排序和过滤直接在内存中操作,因为所有信息都存在于内存中。使用 IQueryable 可以用 WHERE、SELECT、ORDER BY等对数据进行操作,并在数据端执行查询。
使用场景:
IEnumerable 适用于对内存中数据进行查询。
IQueryable 适用于对数据库、XML 文档等外部数据源进行查询。
lEnumerable:把数据取到内存中,在内存中查询
IQueryable:拼接好sql,直接从数据库中查询
那么什么时候选择使用IEnumerable 和 IQueryable呢?
在大多数情况下,我们应该使用 IEnumerable 来查询内存中的数据。如果需要查询外部数据源,例如数据库或 XML 文档,则应该使用 IQueryable。另外IQueryable可以使用强大的linq查询语法;可以执行延迟查询并将查询结果缓存起来,从而提高性能。
不同的WHERE方法
1、对普通集合和DbSet调用的Where方法,虽然用起来一样,但是“转到定义”后看到的是不同的方法。
2、普通集合的版本(IEnumerable)是在内存中过滤(客户端评估),而IQueryable版本则是把查询操作翻译成SQL语句(服务器端评估)。
IEnumerable在客户端内存中一条一条处理的,
IQueryable 翻译成sql语句扔到数据库服务器中去执行。
数据量较大的时候,IQueryable性能较高。
通常客户端评估的效率会低一些。
所以这就是 EFCore 都是采用IQueryable 版本中的方法的原因,因为这些操作会会翻译成sql语句到数据库服务器中去执行
-
2013-06-10经典SQL语句大全 .
-
2019-11-28SortedDictionary
类 -
2014-02-24标签列表(功能排序)
-
2012-07-02什么是另类竞价?另类竞价到底是什么?
-
2011-03-15详解DataTable用法
-
2012-06-30关键词选择五种行为不可效法
