public Configuration BuildConfiguration(SessionFactoryParameters parameters) { if (MonahrqNHibernateProvider.Configuration != null) { return(MonahrqNHibernateProvider.Configuration); } MonahrqNHibernateProvider.BuildConfiguration(); return(MonahrqNHibernateProvider.Configuration); }
private ISessionFactory InitializeSessionFactory() { if (MonahrqNHibernateProvider.SessionFactory != null) { return(MonahrqNHibernateProvider.SessionFactory); } if (MonahrqNHibernateProvider.Configuration == null) { lock (_syncLock) { //var configurer = MsSqlConfiguration.MsSql2008 // .ConnectionString( // ConfigurationService.ConnectionSettings.ConnectionString) // .AdoNetBatchSize(ConfigurationService.MonahrqSettings.BatchSize) // .UseReflectionOptimizer().FormatSql(); //configurer = ConfigurationService.MonahrqSettings.DebugSql // ? configurer.ShowSql() // : configurer; MonahrqNHibernateProvider.BuildConfiguration(); //MonahrqNHibernateProvider.Configuration = Fluently.Configure() // .Database(configurer) // .Mappings( // m => // { // var providers =ExtensibilityTypeProvider.ProviderTypes; // var assy = providers.Select(i => i.Assembly); // var distinct = assy.Distinct(); // distinct.ToList().ForEach(a =>m.FluentMappings.AddFromAssembly(a)); // assy = ExtensibilityTypeProvider.ConventionTypes.Select(i => i.Assembly).Distinct(); // assy.ToList().ForEach(a =>m.FluentMappings.Conventions.AddAssembly(a)); // } // ) // .ExposeConfiguration((config) => // { // config.Properties.Add("use_proxy_validator","false"); // var schemaExport = new SchemaExport(config); // if (ConfigurationService.RebuildDatabase) // { // schemaExport.Drop(false, true); // schemaExport.Execute(true, false, false); // } // else // { // var schemaUpdate = new SchemaUpdate(config); // schemaUpdate.Execute(true, true); // } // // See http://msdn.microsoft.com/en-us/magazine/ee819139.aspx // // config.SetInterceptor(dataBindingIntercepter); // }).BuildConfiguration(); MonahrqNHibernateProvider.SessionFactory = MonahrqNHibernateProvider.Configuration.BuildSessionFactory(); } } // //.ExposeSessionFactory((factory) => // { // dataBindingIntercepter.SessionFactory = factory; // }); return(MonahrqNHibernateProvider.SessionFactory); }