2008-09-23 55 views

回答

16

NHibernate默認支持樂觀併發。另一方面,悲觀併發可以通過ISession.Lock()方法完成。

這些問題在this document中有詳細討論。

+0

感謝Jon的快速回復:-) – 2008-09-23 01:05:05

+3

交易和併發性文檔現在在這裏:http://nhforge.org/doc/nh/en/index的.html#交易 – 2010-08-10 15:34:44

22

NHibernate支持兩種類型的樂觀併發。

您可以通過在映射文件中的「class」元素上使用「optimistic-lock = dirty」屬性來檢查髒字段,也可以使用「optimistic-lock = version」(也是默認值) 。如果您使用的是版本,則需要在映射文件中提供映射到數據庫中字段的「版本」元素。

版的類型可以是Int64類型,的Int32,Int16類型,蜱,時間戳,時間跨度或並以保存被自動遞增。有關更多信息,請參閱NHibernate文檔中的Chapter 5

2

您也可以'只'手動比較版本號(假設您已將版本屬性添加到您的實體)。

明顯樂觀是唯一的理智選擇。有時當然,我們必須處理瘋狂的場景,但是...