2009-10-27 99 views
3

如何配置SysCache2二級緩存與流利的NHibernate配置?配置SysCache2與流利的NHibernate

private ISessionFactory CreateSessionFactory() 
    { 
     return Fluently.Configure() 
      .Database(MsSqlConfiguration.MsSql2008.ConnectionString(_connectionString) 
      .Cache(c => c.UseQueryCache()) 
      .Dialect<FullTextSearchEnabledMsSql2008Dialect>() 
      .UseReflectionOptimizer()) 
      .Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly())) 
      .BuildSessionFactory(); 
    } 

回答

0

我不認爲你可以。你必須通過web.config來配置它。

3

我沒有遇到任何問題。

public static ISessionFactory Create(string connectionString) { 
      // fluently configure an ms-sql 2008 database 
      return FluentNHibernate.Cfg.Fluently.Configure() 
      .Database(FluentNHibernate.Cfg.Db.MsSqlConfiguration.MsSql2008 
         .ConnectionString(c => c.Is(connectionString)) 
         .AdoNetBatchSize(50) 
         .FormatSql() 
         .UseReflectionOptimizer()) 
      .Cache(c => c 
        .ProviderClass<NHibernate.Caches.SysCache2.SysCacheProvider>() 
        .UseQueryCache() 
        .UseSecondLevelCache() 
        .UseMinimalPuts()) 
      .ExposeConfiguration(config => { 
       new NHibernate.Tool.hbm2ddl.SchemaExport(config) 
       .Drop(/* Output to console */ false, /* Execute script against database */ true); 
      }) 
      .ExposeConfiguration(config => { 
       new NHibernate.Tool.hbm2ddl.SchemaExport(config) 
       .Create(/* Output to console */ true, /* Execute script against database */ true); 
      }) 
      .Mappings(m => { 
        m.FluentMappings.Conventions.Setup(x => { 
          x.AddFromAssemblyOf<Mappings.AspectMap>(); 
          x.Add(FluentNHibernate.Conventions.Helpers.AutoImport.Never()); 
         }); 
       m.FluentMappings.AddFromAssembly(System.Reflection.Assembly.GetExecutingAssembly()); 
      }) 
      .BuildSessionFactory(); 
     }