2016-02-15 137 views
5

在只讀操作後保存更改是否有意義?這些實體被加載到緩存中,但沒有任何更改,應該保存更改後才能處理?實體框架保存更改

回答

4

doc (DbContext.SaveChanges)

保存在這方面作出了底層數據庫的所有更改。

不,如果您沒有對您的上下文進行任何更改,請致電SaveChanges

您可以詳細here

瞭解更多關於這方面的一個實體可以在五分之一的國家由EntityState枚舉定義。這些狀態是:

  • 補充:實體是由上下文跟蹤,但不會在數據庫
  • 不變尚不存在:實體正在由上下文跟蹤和存在於數據庫中,其財產值與數據庫中的值沒有變化
  • 修改:實體正在被上下文跟蹤並存在於數據庫中,並且其某些或全部屬性值已被修改
  • 已刪除:實體正在被跟蹤由上下文存在並存在於數據庫中,但下次SaveChanges時已標記爲從數據庫中刪除叫
  • 獨立:

    • 不變的實體不會被調用SaveChanges感動:實體沒有被上下文

    的SaveChanges確實在不同狀態下的實體不同的事情進行跟蹤。更新不會發送到數據庫處於Unchanged狀態的實體。

  • 添加的實體被插入到數據庫中,然後在SaveChanges返回時變爲Unchanged。
  • 修改的實體在數據庫中更新,然後在SaveChanges返回時變爲未更改。
  • 刪除的實體從數據庫中刪除,然後從上下文中分離。
0

你並不需要調用SaveChanges()除非你在實體做任何AddUpdate