2011-07-04 16 views

答えて

6

これは異なるものです。

あなたは常にNHibernateトランザクションの中で作業を行うべきです。

たとえば、必要に応じてTransactionScopeを使用できます。複数のセッションが関わっている場合に分散トランザクションを使用できます。

NHibernateトランザクションは自動的に分散トランザクションに登録されますが、自動的に作成されることはないため、推奨パターンは次のとおりです。TransactionScopeがある場合は、NHトランザクションを開きます。

+0

はい、なぜNHibernateトランザクションを開く必要がありますか? TransactionScopeは、NHibernateトランザクションのようなデータベーストランザクションを開くかどうかを指定します。 – Andy

+0

@Andy:NHibernateに明示的なトランザクションを使用することが常に推奨されています(とりわけキャッシュを中断せず、TransactionScopeを持っているときにNHトランザクションを持たないため、デバッグが難しいバグが発生する可能性があります)。それはより良いかもしれませんが、それはそうです。 –

0

トランザクション管理は、NHibernate ITransactionインターフェイスを介してアプリケーション開発者に公開されています。あなたはこのAPIを使用するよう強制されません - NHibernateは ADO.NETトランザクションを直接制御できます。

関連する問題