はい、リージョンを介してキャッシュの有効期限を設定できます。次のようにクエリを調整します。
criteria.SetCacheable(true)
.SetCacheMode(CacheMode.Normal)
.SetCacheRegion("LongTerm");
そして、同様の構成をweb.configファイルに入れます
<configSections>
<section name="syscache" type="NHibernate.Caches.SysCache.SysCacheSectionHandler, NHibernate.Caches.SysCache" requirePermission="false" />
</configSections>
<syscache>
<cache region="LongTerm" expiration="180" priority="5" />
<cache region="ShortTerm" expiration="60" priority="3" />
</syscache>
編集:私はこのリンクを追加していますクラス-基準によってエンティティを取得するときに使用されないキャッシュSQLクエリキャッシュ
が何を意味するかを確認するために。リンクされた回答で私はそのトピックを説明しています
わかりやすくするために。NHibernateの「session-factory」の構成には次のものが含まれている必要があります。
<property name="cache.use_query_cache">true</property>
このスイッチにより、クエリキャッシュが機能します。詳細: http: //nhibernate.info/doc/nh/en/index.html#performance-querycache