예제 #1
0
        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);
        }