2009-11-09 145 views
0

我想了解如何以及如果它可能保持一个会议打开一个wcf服务。WCF FluentNhibernate会话管理和缓存

问题是,如果我选择一个实体并将其传递给客户端,并将它返回给服务器,并获得相同的会话,那么我得到一个异常会导致会话不知道这个实体(由于wcf )。

所以我必须打开一个新的会话更新,当我打开一个新的会话,我松开了nhibernate的高速缓存mechanizm。

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

我想保持缓存我不在乎如果我需要打开每个电话的会话。

回答

1

通常情况下,您将使用wcf每次呼叫的会话。当你从客户端收回实体时,你应该能够调用Session.Merge(实体)并完成你所需要的工作。

+0

但为什么(每个calll会话)?我不想松动缓存...... – 2009-11-10 18:13:36

+0

您可以使用每个sessionFactory的二级缓存,但会话应与短暂的工作单元绑定。在这个电话会是你的工作单位。您可以关闭会话并将其存储在某个地方(重新打开会话),但管理会话生命期间wcf调用不会很有趣。 – 2009-11-10 20:05:56

+0

我在哪里可以阅读关于这个二级缓存? – 2009-11-26 19:20:08