我在哪里可以找到具有流畅的nhibernate入门指南的SharedCache

时间:2009-11-27 20:16:50

标签: caching fluent-nhibernate

在哪里可以找到具有流畅的nhibernate入门指南的SharedCache

1 个答案:

答案 0 :(得分:4)

我发现很少有文档可以让SharedCache与NHibernate一起工作,更不用说流利了。但是,这不是一个艰难的过程:

  1. 您需要告诉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" />
    
  2. 然后,您将需要为缓存添加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>
    
  3. 您可以找到有关配置SharedCache客户端on their website的更多信息,但请务必配置每台服务器。

    希望这会有所帮助 - 我无法对此进行全面测试,所以我可能在某个地方犯了错误。