NHibernate:ThreadStaticSessionContext和WcfOperationSessionContext有什么区别?

时间:2013-01-29 01:24:41

标签: multithreading wcf nhibernate

如您所见,如果我在非WCF 场景中使用WcfOperationSessionContext会发生什么?

任何答案都会有所帮助!谢谢!

1 个答案:

答案 0 :(得分: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
...

了解其他人,以便更多地了解在多线程环境中适合您的内容:

线程会话上下文之一将是更好的选择

但正如您可以在documentation 2.3. Contextual Sessions中阅读的那样,您始终可以绑定和取消绑定ISession实例:

  • NHibernate.Context.ThreadStaticSessionContext(...)您负责使用类CurrentSessionContext的静态方法绑定和取消绑定ISession实例。

  • NHibernate.Context.WcfOperationSessionContext(...)您负责使用类CurrentSessionContext的静态方法绑定和取消绑定ISession实例。