增加刪除ADO.NET選項解釋
數據集使這項工作很難完成。你們支持這一點嗎,ADO.NET選項:對象數據類型支持當前處于評估期。在.NET中似乎沒有快捷的方式來完成這項任務。假如它達到臨界質量,我們將支持它。
Refresh的第一個參數值得注意一下,ADO.NET選項是一個枚舉值,有兩個選項:StoreWins或者是ClientWins。如果是StoreWins,那么,Refresh以后,product2的值將與數據庫里的對應記錄的值一致(修改會丟失);而如果ClientWins,則product2的值保持,并且提交以后,會把context提交的修改覆蓋。其實,這兩種方法均不完美,總會導致一部分修改丟失。
但是,這總比在不知情的情況下的覆蓋要好。 另外,需要說明,上面的方法,只是對并發沖突的一種模擬,這樣的模式,在處理并發沖突時會有問題。一般的處理方法是,當檢測到并發沖突時,提示用戶會重新從數據庫載入數據,然后,ADO.NET選項讓用戶在新數據的情況下重新修改后再次提交,直到不再有并發沖突發生。#t#
我們已經知道如何增加、更新和刪除實體記錄,并將更改數據庫記錄。Entity Framework 通過Object Context 控制的ObjectStateManager 對象來跟蹤變更,ObjectStateManager 將跟蹤所有對實體對象的變更,在調用SaveChanges() 方法時,執行相應的T-SQL腳本。
ObjectStateManager比LINQ to SQL中DataContext 的變更跟蹤功能更先進。下面,我們詳細了解ADO.NET選項如何顯示有用的變更跟蹤信息。