[英]Entity framework save changes
在只读操作后保存更改是否有意义? 实体被加载到缓存,但没有任何变化,应该在处置之前保存更改吗?
来自doc( DbContext.SaveChanges
) :
将在此上下文中所做的所有更改保存到基础数据库。
如果您没有对上下文进行任何更改,则调用SaveChanges
没有任何意义。
您可以详细阅读更多关于这个这里
实体可以处于由EntityState枚举定义的五种状态之一中。 这些州是:
- 补充:实体正在被上下文跟踪,但在数据库中尚不存在
- 未更改:实体正在被上下文跟踪并存在于数据库中,并且其属性值未从数据库中的值更改
- 已修改:实体正由上下文跟踪并存在于数据库中,并且已修改其部分或全部属性值
- 已删除:实体正在被上下文跟踪并存在于数据库中,但在下次调用SaveChanges时已标记为从数据库中删除
- 已分离:上下文未跟踪实体
SaveChanges为不同状态的实体做了不同的事情:
- SaveChanges不会触及未更改的实体。 对于处于Unchanged状态的实体,不会向数据库发送更新。
- 添加的实体将插入到数据库中,然后在SaveChanges返回时变为Unchanged。
- 修改后的实体在数据库中更新,然后在SaveChanges返回时变为Unchanged。
- 已删除的实体将从数据库中删除,然后从上下文中分离。
除非你这样做,否则你不需要调用SaveChanges()
:
Add
Update
Delete
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.