我发现很少有文档可以让sharedcache与nhibernate一起工作,更不用说流利地进行工作了。然而,这不是一个困难的过程:
-
您需要告诉nhibernate您正在使用sharedcache作为缓存提供程序。
Another Stack Overflow answer
给出了Fluent NHibernate的示例实现。关键是
Cache
函数,这里除外,您将要使用
NHibernate.Caches.SharedCache.SharedCacheProvider
而不是
NHibernate.Cache.HashtableCacheProvider
.
顺便提一句,要对其进行非流畅的配置,您可以在配置中使用类似这样的功能:
<add key="hibernate.cache.provider_class" value="NHibernate.Caches.SharedCache.SharedCacheProvider, NHibernate.Caches.SharedCache" />
或者,如果您正在通过Spring.net配置其余的nhibernate配置条目:
<entry key="cache.provider_class" value="NHibernate.Caches.SharedCache.SharedCacheProvider, NHibernate.Caches.SharedCache" />
-
然后,您需要为缓存添加web.config/app.config条目,就像在不使用nhibernate的情况下使用sharedcache时一样,例如:
<configSections>
<section name="indexusNetSharedCache" type="MergeSystem.Indexus.WinServiceCommon.Configuration.Client.IndexusProviderSection, MergeSystem.Indexus.WinServiceCommon" />
</configSections>
<indexusNetSharedCache defaultProvider="IndexusSharedCacheProvider">
<servers>
<add key="myServer1" ipaddress="127.0.0.1" port="48888"/>
</servers>
<providers>
<add name="IndexusSharedCacheProvider" type="MergeSystem.Indexus.WinServiceCommon.Provider.Cache.IndexusSharedCacheProvider, MergeSystem.Indexus.WinServiceCommon" />
</providers>
</indexusNetSharedCache>
您可以找到更多有关配置sharedcache客户端的信息。
on their website
,不过也要确保配置每个服务器。
希望这有帮助-我还没有完全测试过这个,所以我可能在某个地方犯了错误。