0
A
回答
1
您是指第一級(會話)緩存嗎?
可以使用刷新來刷新從數據庫中一個實體的狀態,即:
// Will get the state from the first-level cache if already present in the session:
var entity = Session.Get<EntityType>(entityId);
// Line below will update the entity with the current state from the database:
Session.Refresh(entity);
+0
如果實體尚未處於緩存中,這將導致對數據庫進行兩次查詢。 –
+0
的確如此。我相信如果情況如上所述(您沒有對要刷新的實體的引用),可以使用Session.Load而不是Session.Get來避免這種情況。 –
1
如果你已經持有的實體,而不是直接調用session.Refresh(person)
上再次得到它的。
您也可以用session.Evict(person)
驅逐它,導致它不再出現在會話中,也無法追蹤更改。然後丟棄它,並最終在需要時再次使用它。
否則,這是不尋常的,認爲它是從會話緩存中得到它的麻煩。這通常是會話使用不良的標誌,例如跨許多用戶交互(反模式)使用同一會話。
你仍然可以做什麼Fredy proposes。或者在清除會話緩存之前調用session.Clear()
(並通過這種方式丟失所有未決的更改)。
相關問題
- 1. 緩存流利的NHibernate ISessionFactory
- 2. 流利的NHibernate的Syscache2緩存過期
- 3. 流利NHibernate的asp.net MVC緩存
- 4. 流利的nhibernate r1.0流利的映射禁用懶加載
- 5. NHibernate二級高速緩存 - 流利的nHibernate配置
- 6. 保存與(流利)的NHibernate
- 7. 流利的nhibernate批保存
- 8. 流利的NHibernate與NHibernate 3.0
- 9. NHibernate或流利的NHibernate?
- 10. C#流利nhibernate
- 11. C#流利nhibernate
- 12. LLBLGEN - 流利NHibernate
- 13. 流利的nHibernate L2緩存不能在HasMany項目工作
- 14. 流利nhibernate不緩存在asp.net中的查詢mvc
- 15. 流利的nhibernate第一級緩存不按預期工作
- 16. 流利的nHibernate - 查詢緩存不工作與「session.Query」和Cacheable()
- 17. 流利NHibernate的 - IndexOutOfRange
- 18. 流利Nhibernate和Nhibernate 2.1.0.1003
- 19. NHibernate /流利NHibernate映射
- 20. 流利的NHibernate和存儲過程
- 21. 流利的nhibernate數據不存在
- 22. 保存流利/ NHibernate的預測
- 23. 流利NHibernate的一對一保存
- 24. 流利的NHibernate和存儲庫模式
- 25. 流利的NHibernate存儲庫與子類
- 26. 流利Nhibernate映射
- 27. 從appSettings流利NHibernate
- 28. 流利NHibernate和log4net
- 29. 流利NHibernate入門
- 30. 流利NHibernate與SQLite
如果你能解釋你有多一點的問題,這將是一件好事。 –
您可能會問如何對您的實際麻煩應用錯誤的解決方案。 –