2
在我的代碼中,我使用NHibernate ISession.BeginTransaction(IsolationLevel.ReadCommitted)開始事務。我正在使用Firebird 2.5。有時在多用戶環境中發生死鎖。它是預期的。問題是如果我直接使用Firebird的.NET提供程序,我可以設置死鎖WAIT超時或使用NO WAIT選項,但是我使用NHibernate並且一個星期現在無法找到方法來執行此操作。任何幫助,意見和提示?當使用NHibernate時,是否可以爲事務設置Firebird WAIT超時
檢查這個問題的答案[SO](http://stackoverflow.com/questions/4130000/setting-the-right-transaction-isolation-mode-with-nhibernate-how-to)。它給你一個關於如何設置事務隔離級別的提示。 –
感謝您的評論。但問題不在IsolationLevel中。在你給他的鏈接中,他最有可能使用快照隔離,這就是他得到異常的原因。我的問題是,我使用ReadCommitted隔離和發生死鎖,我的代碼無限等待完成。因此,我需要找到一種方法來告訴Firebird .NET提供程序等待超時,或將其配置爲使用NO WAIT選項(即立即給出異常而不是等待) – bamanow
不知道如何設置NO WAIT,但是您是否嘗試過配置超時使用'Icriteria'的細節?檢查此[接受的答案](http://stackoverflow.com/questions/8102647/nhibernate-setting-query-time-out-period-for-commands-and-pessimistic-locking) –