13
我在因特網上找不到答案。如果沒有更改,實體框架的DbContext是否保存更改?
讓我們假設我有一個DbContext
,我只是從中選擇所有的實體。我不添加,更新或刪除DbSet
上的任何實體。
如果我在DbSet
之後致電SaveChanges
。它是否真的浪費資源建立連接和其他的東西,即使我沒有對DbSet
進行任何修改?
是否足夠聰明地檢測是否進行了更改,並且行爲有所不同?
我在因特網上找不到答案。如果沒有更改,實體框架的DbContext是否保存更改?
讓我們假設我有一個DbContext
,我只是從中選擇所有的實體。我不添加,更新或刪除DbSet
上的任何實體。
如果我在DbSet
之後致電SaveChanges
。它是否真的浪費資源建立連接和其他的東西,即使我沒有對DbSet
進行任何修改?
是否足夠聰明地檢測是否進行了更改,並且行爲有所不同?
它使用EntityState來確定沒有任何提交,因此不浪費資源。
http://msdn.microsoft.com/en-us/library/system.data.entitystate%28v=vs.110%29.aspx
您是否試過使用探查器來查看?似乎這個問題可以通過一些測試來回答。 – Jamiec 2014-11-21 13:00:00
不,它不會,DbContext跟蹤更改,以便知道要提交的內容。如果它沒有任何變化的知識,那麼連接到數據庫的關鍵點到底是什麼。 – 2014-11-21 13:05:01