【发布时间】:2017-08-17 15:53:10
【问题描述】:
在我们的应用程序配置中,我们已将 NHibernate 配置为使用 SysCacheProvider 启用的二级缓存和查询缓存,配置流畅...
.Cache(x => x.UseQueryCache().ProviderClass<SysCacheProvider>().UseSecondLevelCache())
我们有一个名为Lookup 的实体,在其映射文件中用Cache.ReadOnly() 标记,我们使用CreateCriteria 和SetCacheable(true).SetCacheMode(CacheMode.Normal) 获取它。
问题是二级缓存似乎没有使用。使用NHProf,我们可以看到获取查找的第一个查询(通过唯一的字符串ID)被正确缓存,但是在每次调用时NHibernate然后通过缓存的sql ID进入数据库以获取行,而不是使用第二个一级缓存。
我已经做了所有in this blog 但无济于事。
我还有什么需要做的吗,或者是否有任何陷阱可能意味着实体不会被添加到二级缓存中?
【问题讨论】:
标签: caching nhibernate fluent-nhibernate second-level-cache