2009-09-30 48 views
2

我試圖獲取從我的數據庫實現給定的標準列表。我正在使用的聲明是: var products = session .CreateCriteria(typeof(Product)) .Add(Restrictions.Eq(「Category」,category)) .List();NHibernate的 - 獲取列表

其中,產品是我的域對象 會議是當前的活動會話。

每當我用這個說法,NHibernate的查詢數據庫,每次來代替取我做的只是它的第一個時間,然後回到我從第二次起緩存結果的列表。我有什麼不正確的嗎?

回答

1

它打數據庫,但只能在查詢結果中獲取的PK值。

演示:設置一個斷點在此行中,執行一次,然後暫停它再次執行之前。直接修改數據庫以更改其中一個對象的值,然後再次運行該行。檢查結果。返回的實體不應反映您對數據庫所做的更改(即它們來自會話高速緩存)。

+0

按照我的演示,你必須_modify_現有記錄。在第一個查詢後,添加的記錄不會在緩存中。 – 2009-09-30 17:08:13

+0

感謝您的快速響應! – 2009-09-30 17:51:44

+0

你知道爲什麼它必須從數據庫中檢索PK值嗎? 另外,你知道任何好的WPF + MVVM + NHibernate鏈接在一起嗎? 謝謝! – 2009-09-30 21:08:02