NetCore性能优化

2.非跟踪查询
在只读方案中使用结果时,非跟踪查询十分有用,可以更快速地执行。
增加AsNoTracking()表示非跟踪,如:
var users = context.User.AsNoTracking();

还可以在上下文实例级别更改默认跟踪行为:
context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
var users = context.User;

全局筛选

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<User>().HasQueryFilter(p => !p.IsDeleted);
}

批量处理

  1. 1.批量操作
  2. 批量更新:
  3. int   count = context.User.Where(u=>u.UserName=="张三1").Update(u=> new User{ UserName= "李四1" });
  4. 批量删除:
  5. int   count = context.User.Where(u=>u.UserName=="张三1").Delete();

复制代码

5.合理使用tolist,toList是将数据库开销后将记录数放置到程序的内存中,大数据下禁止使用。
6.频繁查询应调用缓存记录,例如:获取角色资源列表接口。
7.split 方式操作集合应使用linq方式,不推荐使用遍历方式。

最新文章

  1. 深入理解javascript函数定义与函数作用域
  2. OCP考点实战演练02-日常维护篇
  3. js原声快速实现选项卡
  4. C到C++的升级
  5. hdu 4023 2011上海赛区网络赛C 贪心+模拟
  6. 【java 获取数据库信息】获取MySQL或其他数据库的详细信息
  7. Unity 资源管理与更新
  8. [moka同学笔记]一、Yii2.0课程笔记(魏曦老师教程)
  9. 获取Assets目录下的图片显示并上传
  10. 标准类型String(学习中)
  11. (三)spark集群DHCP IP变化后的处理
  12. 设计模式 - chain of Responsibility
  13. Android小记之--android:listSelector
  14. c#接口和new关键字和属性访问器基础收获
  15. 编译x64的应用,要在pro文件里配置
  16. Android编程之LayoutInflater的inflate方法实例
  17. 多普勒失真信号采样Matlab模拟分析
  18. Java集合概述、Set集合(HashSet类、LinkedHashSet类、TreeSet类、EnumSet类)
  19. jenkins - ssh Server Groups Center
  20. Vue父子组件及非父子组件如何通信

热门文章

  1. 实现领域驱动设计 - 使用ABP框架 - 什么是领域驱动设计?
  2. Museui 图标速览,再也不用担心网页打不开了
  3. 在.NET 6.0上使用Kestrel配置和自定义HTTPS
  4. NC200211 装备合成
  5. .Net下极限生产力之efcore分表分库全自动化迁移CodeFirst
  6. 今天介绍一下自己的开源项目,一款以spring cloud alibaba为核心的微服务架构项目,为给企业与个人提供一个零开发基础的微服务架构。
  7. [ZJCTF 2019]NiZhuanSiWei 1
  8. 【Azure 事件中心】Azure Event Hub 新功能尝试 -- 异地灾难恢复 (Geo-Disaster Recovery)
  9. Redis 5 种基本数据结构(String、List、Hash、Set、Sorted Set)详解 | JavaGuide
  10. cordova 发送ajax请求的相关配置