2010-07-16 74 views
0

我正在使用城堡活動記錄,我使用.Find()方法加載一個Enity,更新數據庫後我調用entity.Refresh()但實體不刷新數據我在數據庫中更改的內容並未體現在實體的狀態中。我完全喪失瞭如何讓這個工作。Castle Activerecord對象不刷新

+0

您使用的是二級緩存嗎? – 2010-07-16 13:23:45

回答

0

此問題可能來自NHibernate緩存。

爲了節省數據庫連接,如果一個對象已經從數據庫中加載,它會保存在緩存中(而不是過期),如果你想獲得這個值,NHibernate會給你緩存的值。

如果您執行dabase直接更新,則在緩存過期之前,您將不會在應用程序中看到它。

爲了防止這種情況,如果您的基礎可以直接更新,您必須停用NHibernate緩存。

+0

我看了一下,無法找到如何禁用緩存,你知道嗎? – Matthew 2010-07-16 13:14:05