0

ご覧のとおり、 WCF 以外のシナリオで WcfOperationSessionContext を使用するとどうなりますか?

どの回答も参考になります!ありがとう!

4

1 に答える 1

1

この場合、自己記述的な名前でWcfOperationSessionContextはそれ以上のことはわかりません。このセッション コンテキストの実装は、WCFシナリオ専用です。

さらに必要な場合は、こちらの実装をご覧ください。

クラスの概要:

/// <summary>
/// Provides a <see cref="ISessionFactory.GetCurrentSession()">current session</see>
/// for the current OperationContext in WCF. 
/// Works only during the lifetime of a WCF operation.
/// </summary>
public class WcfOperationSessionContext : MapBasedSessionContext
...

他のものを見て、マルチスレッド環境で何が適しているかをより理解してください。

スレッド セッション コンテキストのいずれかを選択することをお勧めします

しかし、ドキュメント 2.3で読むことができるように。Contextual SessionsISession 、インスタンスのバインドとバインド解除は常にあなた次第です:

  • NHibernate.Context.ThreadStaticSessionContext (...) クラス CurrentSessionContext の静的メソッドを使用して、ISession インスタンスをバインドおよびバインド解除する必要があります。

  • NHibernate.Context.WcfOperationSessionContext (...) クラス CurrentSessionContext の静的メソッドを使用して、ISession インスタンスをバインドおよびバインド解除する必要があります。

于 2013-01-29T05:00:13.113 に答える