我需要進行庫存控制,所以我需要確保當我修改產品的數量時,正在以正確的方式進行。我使用實體框架4.0實體框架併發性:事務還是併發修復?
例如,如果我使用了一個交易,當我從數據庫中加載的記錄,該條記錄被阻塞,這樣我就可以。減去或添加到負載量,項目數,我需要。但是,這會阻止數據庫中的記錄,也許出於性能原因不是最好的方式。這讓我問及何時使用與EF的交易。
另一個選擇是使用實體框架的併發固定,使用時間跨度列來檢測記錄是否已更改。在這種情況下,如果記錄已在我的加載和我的更新之間進行了修改,我會遇到併發的異常。但可能會發生的情況是,在我的異常處理程序中,如果使用數據庫數據更新我的上下文,則可能會再次更改我的刷新和保存更改。
其他問題是我終於可以保存更改了。例如,我有10個單位,我需要減去8個,但在我的負荷和我的更新之間,其他人減去5個單位。如果我減去8,那麼庫存我有-3個單位。這不可能。如果我有交易,我加載記錄,被阻止,所以我可以檢查我是否有足夠的單位,如果是,我可以扣除,如果沒有,我發送異常。
所以我的問題是,我知道EF本身是一個事務,但它也存在EF中的事務,所以它在某些情況下會很有用。何時使用EF和cocurrency固定以及何時使用交易?
謝謝。 Daimroc。