只读操作后是否需要保存更改?实体已加载到缓存,但没有任何更改,是否应该在处置之前调用保存更改?
From doc (DbContext.SaveChanges) https://msdn.microsoft.com/en-us/library/system.data.entity.dbcontext.savechanges(v=vs.113).aspx:
将此上下文中所做的所有更改保存到基础数据库中。
不,打电话没有意义SaveChanges
如果您没有对您的上下文进行任何更改。
您可以详细阅读有关此内容的更多信息here https://msdn.microsoft.com/en-us/data/jj592676.aspx
实体可以处于 EntityState 枚举定义的五种状态之一。这些状态是:
- 添加:实体正在被上下文跟踪,但数据库中尚不存在
- 未更改:实体正在被上下文跟踪并存在于数据库中,并且其属性值与数据库中的值没有发生变化
- 已修改:实体正在被上下文跟踪并存在于数据库中,并且其部分或全部属性值已被修改
- 已删除:实体正在被上下文跟踪并存在于数据库中,但已被标记为在下次调用 SaveChanges 时从数据库中删除
- 分离:实体没有被上下文跟踪
SaveChanges 对不同状态的实体执行不同的操作:
- SaveChanges 不会触及未更改的实体。对于处于 Unchanged 状态的实体,更新不会发送到数据库。
- 添加的实体将插入到数据库中,然后在 SaveChanges 返回时变为未更改。
- 已修改的实体将在数据库中更新,然后在 SaveChanges 返回时变为未更改。
- 已删除的实体将从数据库中删除,然后从上下文中分离。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)