2011-07-04 136 views

回答

6

他們是不同的東西。

你應該總是在NHibernate事務中完成你的工作。

例如,您可以根據需要使用TransactionScope。在涉及多個會話時使用分佈式事務。

NHibernate的交易將自動登記在分佈式事務,但他們不會被自動創建的,所以推薦的模式是:如果你有一個TransactionScope,打開裏面的NH交易。

+0

是的,但爲什麼我需要打開NHibernate的交易? TransactionScope打開一個數據庫事務如NHibernate事務或不? – Andy

+0

@Andy:因爲使用顯式事務總是建議NHibernate的(不這樣做會導致緩存,除其他事項外),當你有可能導致難以調試的錯誤一個TransactionScope不具有NH交易。這可能會更好,但事實就是這樣。 –

0

通過ITransaction接口嚮應用程序開發人員公開交易管理。你不會被迫使用這個API-NHibernate讓你直接控制ADO.NET事務。