2009-11-09 66 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