EntityFramework Core优化_AsNoTracking

1.在EF中实体的状态分为以下5种状态:

  • 已添加 (Added) DbContext正在跟踪次实体 但数据库中不存在这条记录 在调用SaveChanges时会从数据库中添加对应的数据
  • 未改变(Unchanged) DbContext 正在跟踪此实体 记录存在于数据库中 此属性与数据库的值一致 在调用SaveChanges时忽略
  • 已修改(Modified) DbContext 正在跟踪此实体 记录存在数据库中 属性值已被修改 在调用SaveChanges时会从数据库中修改对应的数据
  • 已删除(Deleted) DbContext 正在跟踪此实体 记录存在数据库中 在调用SaveChanges时会从数据库中删除对应的数据
  • 已分离(Detached) DbContext未跟踪次实体 在调用SaveChanges忽略
    2.因此在只查询该对象不对数据进行任何 修改或者删除等操作的时候 不让DbContext对实体进行跟踪【EF会对实体进行拷贝】 可降低内存占用
    myDbContext.tbase_Apilogs.AsNoTracking().Where(x => "a" == "a");
posted @ 2022-07-05 15:36  Wilson_it  阅读(94)  评论(0编辑  收藏  举报