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");