我遇到了一个明显的缓存问题,即NHibernate返回的内容与数据库中的内容不匹配。
我相信这是level2缓存数据。看起来我可以使用Evict来执行此操作,但是何时应该实际调用Evict方法?对于我的特定应用程序,数据将对用户来说是唯一的,并且可能是提供的数据只会使用一次*。
我可以完全禁用这些对象集的Level2缓存吗?
更新10/31
我的情况是这样的:我有一个购物车,客户将在其中添加和删除商品。我正在做的是以下内容:在处理购物车更新之前,我驱逐了Cart
和CartProduct
实体。完成此操作后,我从提供程序中检索CartProducts
列表并返回视图(这发生在.NET MVC控制器中)。
更新11/3
购物车已经完成,我遇到了一个似乎与同一个NHibernate问题有关的问题,但实际上是一个MVC问题。更深入的挖掘揭示了HTML Helper扩展覆盖了我想要的值,并取而代之的是Model状态。所以在这个问题上有一个双重打击。希望这有助于某人。
答案 0 :(得分:18)
不,您无法禁用某些实体的缓存。
您有多种选择: