2011-07-05 132 views

回答

0

我已經檢查的NHibernate 3.1.0來源,似乎調用ISession.Close()應導致ITransaction.Dispose()的默認實現。但是,儘管如此,在現有應用程序中使用而不是導致明確的交易commitrollback - 使用NHibernate Profiler進行檢查。

我不認爲這是一個好主意,讓交易僅依賴於ISession.Close(),因爲它可能導致不可預知的行爲。如果某人將適應該特定方法幷包含ISession.SaveOrUpdate ......您的實體將不會持續下去。

UPDATE

Sql Server角度來看,我認爲這取決於你的交易isolation level,但我敢肯定,你遲早會遇到鎖或超時。請參閱本sql-server具體問題:

What happens to an uncommitted transaction when the connection is closed?

+0

我不關心濫用。我關心的是數據庫。數據庫將有交易沒有結束(我認爲是這樣)。 –

相關問題