...
第一、この
<configSections>
<section name="syscache" type="NHibernate.Caches.SysCache.SysCacheSectionHandler, NHibernate.Caches.SysCache, Version=3.0.0.4000, Culture=neutral, PublicKeyToken=6876f2ea66c9f443"/>
</configSections>
のようなあなたのweb.configファイルにconfigセクションを追加
は、このようなあなたの構成セクションの下にあなたのweb.configファイルにsyscacheセクションを追加します。私のhibernate.cfg.xmlファイル内
<syscache>
<cache region="SomeCustomNameRegion" expiration="86400" priority="5" />
</syscache>
私は、次のプロパティが追加しました:
<property name="cache.provider_class">NHibernate.Caches.SysCache.SysCacheProvider, NHibernate.Caches.SysCache</property>
<property name="cache.use_query_cache">true</property>
<property name="cache.use_second_level_cache">true</property>
私は私のマッピングを作成し、キャッシングをサポートするために、これを追加するFluentNhibernateを使用しています:
public CustomerClassMap()
{
Cache.NonStrictReadWrite();
Id(x => x.Id);
Map(x => x.Name);
//... more properties
}
をそして私のデータ・アクセス・コードでは、私は私がキャッシュされたいクエリのためにこれに似た何かを持っています:
public IEnumerable<Customer> GetAllCached()
{
return Session.CreateCriteria(typeof(Customer))
.SetCacheable(true)
.SetCacheRegion("SomeCustomNameRegion")
.SetCacheMode(CacheMode.Normal)
.AddOrder(Order.Desc("CreateDate"))
.List<Customer>();
}
ここで、もう少し詳しく説明します。あなたが心配する必要があるMVC3に特化したものは何もなく、NHibernateの以前のバージョンとほとんど変わりません。
http://www.klopfenstein.net/lorenz.aspx/using-syscache-as-secondary-cache-in-nhibernate
http://blog.symbiotic-development.com/2008/02/27/more-configuring-nhibernate-caches/
グレート - そのためのおかげで。完璧に働いた。私はまだsyscache要素のためのweb.configにいくつかのスキーマメッセージを取得しますが、警告のみです。再度、感謝します。 – Matt
SysCache2を使用する場合、 "syscache"ではなく "syscache2"という構成要素に名前を付ける必要があります。 –