【问题标题】:WCF FluentNhibernate Session managment and cacheWCF Fluent Nhibernate 会话管理和缓存
【发布时间】:2009-11-09 11:12:25
【问题描述】:

我正在尝试了解如何以及是否可以在 wcf 服务上保持会话打开。

问题是,如果我选择一个实体并将其传递给客户端,然后将其返回到具有相同会话的服务器,我会得到一个异常,导致会话不再知道该实体(由于 wcf,引用已更改) .

所以我必须打开一个新会话进行更新,当我打开一个新会话时,我会失去 nhibernate 的大缓存机制。

我能做些什么来解决这个问题?

我想保留缓存,我不在乎是否需要为每个调用打开会话。

【问题讨论】:

    标签: c# wcf caching fluent-nhibernate


    【解决方案1】:

    通常,您会在每次调用 wcf 时使用一个会话。当您从客户端收到您的实体时,您应该能够调用 Session.Merge(entity) 并完成您需要的工作。

    【讨论】:

    • 您可以使用每个 sessionFactory 的二级缓存,但会话应该绑定到一个短暂的工作单元。在 wcf 中,调用将是您的工作单元。您可以关闭会话并将其存储在某个地方以备下次使用(重新打开会话),但管理 wcf 调用之间的会话生命周期不会很有趣。
    • 文档在这里nhforge.org/doc/nh/en/index.html#performance-cache 也可以看看ayende.com/Blog 以获得很多好的信息。而且戴维有一个快速入门davybrion.com/blog/2009/02/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多