我有一個包含Version
數字列的Posts表,以跟蹤每條記錄的第n個修訂版。每次更新一行時,我都希望它的Version
數字增加。使用NHibernate更新整數列的併發增量
目前,我正在遞增我的應用程序邏輯中的列,但由於post.Version += 1;
不等於UPDATE Posts SET Version = Version + 1...
,所以我擔心兩個併發更新只會導致一個版本增量。
解決這個問題很簡單,使用手動SQL表達式(如上所述)或更新觸發器,但我寧願讓流利NHibernate照顧我,如果可能的話。
使用事務進行更新不會阻止兩個同時讀取兩個都看到版本「7」,並且都決定下一個值應該是8.因此,版本7的兩個更新可能會導致值爲8,而不是9.
如何設計或映射併發安全的自動遞增整數列?
也許這個話題也值得一試,相關:HTTP://計算器。 com/questions/18362228 /如何鎖定對象之前更新使用nhibernate鎖定模式 – Piedone 2014-03-30 18:34:20