代码之家  ›  专栏  ›  技术社区  ›  Chen Kinnrot

在哪里可以找到具有Fluent NHibernate入门指南的sharedcache?

  •  1
  • Chen Kinnrot  · 技术社区  · 15 年前

    在哪里可以找到具有Fluent NHibernate入门指南的sharedcache?

    1 回复  |  直到 15 年前
        1
  •  4
  •   Community CDub    8 年前

    我发现很少有文档可以让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>
      

    您可以找到更多有关配置sharedcache客户端的信息。 on their website ,不过也要确保配置每个服务器。

    希望这有帮助-我还没有完全测试过这个,所以我可能在某个地方犯了错误。