【问题标题】:nHibernate + wcf + IsessionnHibernate + wcf + Isession
【发布时间】:2010-09-08 06:16:08
【问题描述】:

我有一个包含 3 个项目的 c# 解决方案 - 数据、WCF 和 UI。第一个是与 db 对话的类库。它通过第二个类型的 WCF 服务库公开 - 原因是它将在第三个项目 - 称为 UI 的 Asp.net 应用程序中公开 - 作为指向 dll 的简单 svc。

只是指出,我没有使用存储库模式。

我需要为 WCF 调用使用 ISession(类似于 asp.net 的 Session-per-request 方法)。任何人都可以分享一个简单有效的解决方案吗?我不想为此使用任何 IOC。

【问题讨论】:

    标签: wcf nhibernate


    【解决方案1】:

    使用WcfOperationSessionContext(3.0 新增)。

    一旦绑定,您的数据类只需使用SessionFactory.GetCurrentSession()

    【讨论】:

    【解决方案2】:

    每个服务调用都与唯一的 OperationContext 相关联。 OperationContext 没有任何自定义对象的存储,但您可以实现extension。通过在 MessageInspector 中设置会话,您可以在集中位置启动 NHibernate Session,并在任何操作中访问您的扩展上下文。

    【讨论】:

    • 这与 WCF 非常相关。在数据项目中使用这个 ISession 怎么样?我想在没有任何 WCF 上下文相关知识的情况下保留它。
    猜你喜欢
    • 2010-09-22
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多