Example #1
0
        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();
        }
Example #2
0
 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());
 }