大连网站开发建,长沙官网优化公司,网络培训意义,网络营销市场一、例子是第8讲的四、6#xff08;EFCore的静态化处理 #xff09;#xff1a;分析ToList() ToList()在下图绿色框内。 二、在没有最终取数据的时候#xff0c;使用 IQueryableT 延迟执行查询
#xff08;1#xff09;在没有最终取数据的时候#xff0c;不要使…一、例子是第8讲的四、6EFCore的静态化处理 分析ToList() ToList()在下图绿色框内。 二、在没有最终取数据的时候使用 IQueryableT 延迟执行查询
1在没有最终取数据的时候不要使用ToList等方法因为他们会直接读取数据库 First 和 Find 方法会立即执行查询并从数据库中读取数据而 ToList 和其他类似的方法如 ToArray、Count 等也会立即执行查询但它们返回的是一个集合。
2IQueryableT 延迟查询的原理、使用方法、作用
1原理
1IQueryableT是一个泛型接口它允许你构建查询但不立即执行它。
2查询的实际执行会在你迭代 IQueryable 对象如通过 ToList、First 等方法或访问某些属性如 Count时发生。
2使用方法
1使用.where一直在拼接sql语句并没有执行。因为.where返回的类型也是IQueryable
2在最终取数据的时候使用ToList等这些方法执行sql语句。 3举例 3作用节省开销能更有效地管理数据库访问。
3如何在数据库中查看ToList等方法执行的sql语句【体验延迟发送数据】
1打开数据库监听工具 2在VS中使用ToList()等方法读取数据库会在数据库中直接执行sql语句 2在VS中使用IQueryableT 延迟执行查询打上断点查看语句执行过程
1使用.where一直是在拼接sql语句并没有执行因为.where返回的类型也是IQueryable 2到ToList()时数据库内执行sql语句 二、跟踪机制
1、如何修改数据库里的数据【推荐】——Update()和SaveChanges() m 是一个代表集合 jobs 中每个元素的临时变量或称为范围变量。这个变量 m 用于在 Single 方法的条件表达式中引用集合中的每个元素。 2、跟踪机制在实体查询之后上下文会自动的跟踪实体。
举例在上述二、1、进行完后注释掉.Update()再次运行仍然能修改数据库里的数据 3、提高EFCore查询效率取消跟踪机制
1为什么要取消对于有些数据只需要查询不需要修改。那么此时跟踪机制会增加系统的开销降低系统性能。
1如下图本意是只需要返回job不需要它做任何的操作。
2但是由于跟踪机制系统会自动追加一个自动更新的快照去追踪job。
3所以如果按照1的本意【即不需要它做任何的操作不需要更新等】那么系统的自动跟踪就白做了 2如何取消跟踪机制
1全局取消 2局部取消