public UnitOfWorkFactorySpitball(PublishEventsListener publisher, IInterceptor interceptor, IConfigurationKeys connectionString) { _publisher = publisher; var configuration = Fluently.Configure() .Database( FluentNHibernate.Cfg.Db.MsSqlConfiguration.MsSql2012.ConnectionString(connectionString.Db.Db) .DefaultSchema("sb").Dialect <SbDialect>() #if DEBUG .ShowSql() #endif ).ExposeConfiguration((x) => BuildSchema(x, interceptor, connectionString.Db.Integration)); configuration.Mappings(m => { m.FluentMappings.AddFromAssemblyOf <UserMap>() .Conventions.Add(ForeignKey.EndsWith("Id")); }); //TODO: Redis sometime fails. We need to gracefully fallback if it happens //configuration.Cache(c => //{ // CoreDistributedCacheProvider.CacheFactory = new RedisFactory(connectionString.Db.Redis, "master"); // c.UseSecondLevelCache().RegionPrefix("nhibernate") // .UseQueryCache().ProviderClass<CoreDistributedCacheProvider>(); //}); _factory = configuration.BuildSessionFactory(); }
private static ISessionFactory CreateSessionFactory() { return(Fluently.Configure() .Database(MsSqlConfiguration.MsSql2008.ConnectionString(config => config.FromConnectionStringWithKey("ApplicationServices"))) .Mappings(mappingConfiguration => mappingConfiguration.FluentMappings .AddFromAssemblyOf <IEntity>() .Conventions.Add(ForeignKey.EndsWith("Id")) .Conventions.Add <EnumConvention>()) .BuildConfiguration() .BuildSessionFactory()); }