entity framework 上下文对于对象的跟踪有2中方式进行控制,第一种从数据库查询但不加载到上下文。

这里可以用到.AsNoTracing()方法.

这里用到的是实体(entity)在上下文中的本身的几种状态:主要是attached,detached,

针对attached的这些实体以及其中的属性,本身还有一个entitystate,包括modified,unchanged.

这里就涉及到实体的跟踪机制,entityframework模式是最终这些修改的,但是我们可以通过

ctx.Configuration.AutoDetectChangesEnabled =false 来关闭自动追踪。这个时候我们如果去

savechanges()这些update是不会生效的,所以这个时候我们要调用DbChangeTracker.DetectChanges() 这个方法来

手动让他比较一下变更才行.

这里有一点点小疑问,这个属性是codefirst使用,还是不管是不是codefirst都适用。

 

posted on 2018-06-26 16:52  风灵ARCHER  阅读(372)  评论(0编辑  收藏  举报