beginTransaction
それがトランザクションを開始すると述べて、
一方、ヌルが1を作成する場合
session.Transaction
は、現在のアクティブなトランザクションが返されます。
NHibernateセッションは、現在アクティブな(コミットされていないか、ロールバックされた ロールバック)トランザクションを追跡します。
トランザクションがまだ は、セッションの寿命の間にまだ作成されていない場合、あなたがISession.Transaction
を呼び出すと、セッションは その時点で新しいトランザクションオブジェクトを作成しますが、まだ にそれを開始しません。 ISession.BeginTransaction
を呼び出すと、セッションは が既に作成されていてまだ完了していないトランザクションオブジェクトであれば と表示されます。そうであれば、このトランザクションオブジェクトを返します。 そうでなければ、新しいトランザクションオブジェクトを作成し、それを開始し、 この新しいオブジェクトへの参照を格納します。取引完了時に
は、トランザクションオブジェクトは、セッション に通知し、それがどのセッションが トランザクション・オブジェクトへの参照を解放し、完了したことを所属します。その後、 ISession.Transaction
またはISession.BeginTransaction
を呼び出すと、新しいトランザクションオブジェクトが作成されます( )。
NHibernateは、 トランザクション以上のトランザクションオブジェクトの再利用をサポートしていません(この動作は、トランザクションオブジェクトの再利用をサポートすると思われるHibernateとは異なる場合があります)。
thisを参照してください。
ブックマークする:http://ayende.com/blog/3775/nh-prof-alerts-use-of-implicit-transactions-is-discouraged – Freelancer
読書Ayendeは常に良いです...しかし、この場合、私の質問に答えません – SteveM