[原创]数据库中过滤数据与在内存中过滤数据(延迟加载)

简介: [原创]数据库中过滤数据与在内存中过滤数据(延迟加载)

var temp = from u in dbContextTable

 where u.ID>4

 select u;


规范的写法其实是:


IQueryable<TableName> temp=from u in dbContextTable

 where u.ID>4

 sele ct u;


或者IQueryable temp=from u in dbContextTable

 where u.ID>4

 sele ct u;


(因为IQueryable<TableName>继承IQueryable,所以可以直接用其基类型)

上面的查询语句初始化了IQueryable接口里面的三个参数


1.linq表达式转成Expression类型

2.给Type ElementType赋值,也就是Model的类型

3.给IQueryable Provider赋值,ef provider


当用到IQueryable接口的集合的数据的时候,provider(这里是EFProvider)解析Expresion表达式获取相应的数据。再进行foreach遍历。

Linq to XML则是XML Provider

linq to ***则是*** Provider

在数据库内进行过滤:Where表达式会生成到查询语句中,也就是说Linq to EF查询是在数据库内进行过滤的。可以用数据库监测工具查看EF自动生成的。

sql语句。


例如:


SELECT

   [Extent1].[Id] AS [Id],

   [Extent1].[UserName] AS [UserName],

   [Extent1].[Pwd] AS [Pwd]

   FROM [dbo].[UserSet] AS [Extent1]

   WHERE [Extent1].[Id] > 200


在内存里面过滤:把数据库里面的数据查询出来到内存再过滤,如果数据过多,内存会Boom。

什么情况下使用内存过滤:

List集合(之前学过的经典集合,例如:Array,Dictionary。。。)和

IQueryable接口的不同点。

linq to object

立即将数据库表的数据加载到List中来

var demoList=from u in dbContext.TableName.ToList()

 where u.ID>4

 select u;


例如:


SELECT

   [Extent1].[Id] AS [Id],

   [Extent1].[UserName] AS [UserName],

   [Extent1].[Pwd] AS [Pwd]

   FROM [dbo].[UserSet] AS [Extent1]


是没有where过滤语句的

还可借助VS的调试工具设置断点看看

区别:

Model First

相关文章
|
1月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
17天前
|
存储 监控 数据处理
flink 向doris 数据库写入数据时出现背压如何排查?
本文介绍了如何确定和解决Flink任务向Doris数据库写入数据时遇到的背压问题。首先通过Flink Web UI和性能指标监控识别背压,然后从Doris数据库性能、网络连接稳定性、Flink任务数据处理逻辑及资源配置等方面排查原因,并通过分析相关日志进一步定位问题。
141 61
|
20天前
|
存储 编译器 数据处理
C 语言结构体与位域:高效数据组织与内存优化
C语言中的结构体与位域是实现高效数据组织和内存优化的重要工具。结构体允许将不同类型的数据组合成一个整体,而位域则进一步允许对结构体成员的位进行精细控制,以节省内存空间。两者结合使用,可在嵌入式系统等资源受限环境中发挥巨大作用。
45 11
|
1月前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
110 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
1月前
|
关系型数据库 分布式数据库 数据库
云栖大会|从数据到决策:AI时代数据库如何实现高效数据管理?
在2024云栖大会「海量数据的高效存储与管理」专场,阿里云瑶池讲师团携手AMD、FunPlus、太美医疗科技、中石化、平安科技以及小赢科技、迅雷集团的资深技术专家深入分享了阿里云在OLTP方向的最新技术进展和行业最佳实践。
|
2月前
|
监控 算法 应用服务中间件
“四两拨千斤” —— 1.2MB 数据如何吃掉 10GB 内存
一个特殊请求引发服务器内存用量暴涨进而导致进程 OOM 的惨案。
|
1月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
314 2
|
2月前
|
存储 C语言
数据在内存中的存储方式
本文介绍了计算机中整数和浮点数的存储方式,包括整数的原码、反码、补码,以及浮点数的IEEE754标准存储格式。同时,探讨了大小端字节序的概念及其判断方法,通过实例代码展示了这些概念的实际应用。
81 1
|
2月前
|
人工智能 Cloud Native 容灾
云数据库“再进化”,OB Cloud如何打造云时代的数据底座?
云数据库“再进化”,OB Cloud如何打造云时代的数据底座?
|
27天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
34 1