示例#1
0
        protected static Configuration CreateConfiguration()
        {
            //
            Configuration config;

            config = new Configuration();
            config.AddAuxiliaryDatabaseObject(new SpatialAuxiliaryDatabaseObject(config));

            if (UseHibernateConfigurationSection)
            {
                config.Configure();
            }
            // Se fija si tiene que agregar seteos extra
            SetDefaultConfigSettings(config);

            // Listo
            foreach (string assembly in GetEntityAssemblies())
            {
                Assembly ass = Assembly.Load(assembly);
                if (UseHibernateConfigurationSection == false)
                {
                    config.AddAssembly(assembly);
                }
            }
            config.AddAssembly("medea.data");

            return(config);
        }
        public void Wire()
        {
            var conf = new Configuration();

            conf.AddAuxiliaryDatabaseObject(new SpatialAuxiliaryDatabaseObject(conf));
            conf.DataBaseIntegration(x =>
            {
                x.Dialect <ABSqlDialect>();
                x.KeywordsAutoImport = Hbm2DDLKeyWords.AutoQuote;
                x.Timeout            = 60;
                x.BatchSize          = 100;
            });
            conf.Cache(x =>
            {
                x.Provider <SysCacheProvider>();
                x.UseQueryCache     = true;
                x.DefaultExpiration = 120;
            });
            //conf.QueryCache().ResolveRegion("SearchStatistic").Using<TolerantQueryCache>().AlwaysTolerant();
            conf.AddResource("ABServicios.BLL.Mappings.CustomTypes.xml", typeof(RecargaSUBE).Assembly);
            conf.AddAssembly(typeof(RecargaSUBE).Assembly);
            conf.SetProperty(Environment.SqlExceptionConverter, typeof(MsSqlExceptionConverter).AssemblyQualifiedName);
            conf.Configure();
            container.Register(Component.For <ISessionFactory>().UsingFactoryMethod(() => conf.BuildSessionFactory()));
        }
        public static Configuration SetSpatialAuxilaryObject(this Configuration cfg, Action <SpatialAuxiliaryDatabaseObject> map)
        {
            var obj = new SpatialAuxiliaryDatabaseObject(cfg);

            map(obj);
            cfg.AddAuxiliaryDatabaseObject(obj);
            return(cfg);
        }
示例#4
0
        private void BuildSchema(Configuration config, IInterceptor interceptor,
                                 DbConnectionString.DataBaseIntegration needValidate)
        {
            SchemaMetadataUpdater.QuoteTableAndColumns(config, new SbDialect());
#if DEBUG
            if (interceptor != null)
            {
                config.SetInterceptor(interceptor);
            }
#endif
            // var eventPublisherListener = new PublishEventsListener(_publisher);
            config.SetListener(ListenerType.PostCommitDelete, _publisher);
            config.SetListener(ListenerType.Delete, new SoftDeleteEventListener());
            config.SetListener(ListenerType.PostCommitInsert, _publisher);
            config.SetListener(ListenerType.PostCommitUpdate, _publisher);
            config.SetListener(ListenerType.PostCollectionUpdate, _publisher);


            foreach (var t in Assembly
                     .GetExecutingAssembly()
                     .GetTypes()
                     .Where(t => typeof(AbstractAuxiliaryDatabaseObject).IsAssignableFrom(t)))
            {
                config.AddAuxiliaryDatabaseObject(Activator.CreateInstance(t) as IAuxiliaryDatabaseObject);
            }


            //var enversConf = new NHibernate.Envers.Configuration.Fluent.FluentConfiguration();
            //enversConf.Audit<Document>()
            //    .Exclude(x => x.Transactions)
            //    .ExcludeRelationData(x => x.University)
            //    .Exclude(x => x.Votes)
            //    .Exclude(x => x.Course)
            //    .Exclude(x => x.User)
            //    .Exclude(x => x.Status.FlaggedUser)
            //    .ExcludeRelationData(x => x.Tags);


            //config.IntegrateWithEnvers(enversConf);
            config.LinqToHqlGeneratorsRegistry <MyLinqToHqlGeneratorsRegistry>();

            //config.SessionFactory().Caching.WithDefaultExpiration(TimeConst.Day);
            //config.Properties.Add("cache.default_expiration",$"{TimeConst.Day}");
            //config.Properties.Add("cache.use_sliding_expiration",bool.TrueString.ToLowerInvariant());
            switch (needValidate)
            {
            case DbConnectionString.DataBaseIntegration.None:
                break;

            case DbConnectionString.DataBaseIntegration.Validate:
                config.DataBaseIntegration(dbi => dbi.SchemaAction = SchemaAutoAction.Validate);
                break;

            case DbConnectionString.DataBaseIntegration.Update:
                config.DataBaseIntegration(dbi => dbi.SchemaAction = SchemaAutoAction.Update);
                break;
            }
        }
示例#5
0
        private void DropSchema()
        {
            // Isolated configuration doesn't include SpatialReferenceSystem mapping,
            Configuration configuration = CreateConfiguration();

            configuration.AddAuxiliaryDatabaseObject(new SpatialAuxiliaryDatabaseObject(configuration));
            new SchemaExport(configuration).Drop(Settings.Default.OutputDdl, true);
            OnAfterDropSchema();
        }
示例#6
0
        private void CreateSchema()
        {
            OnBeforeCreateSchema();
            // Isolated configuration doesn't include SpatialReferenceSystem mapping,
            Configuration configuration = CreateConfiguration();

            configuration.AddAuxiliaryDatabaseObject(new SpatialAuxiliaryDatabaseObject(configuration));
            new SchemaExport(configuration).Create(false, true);
        }
示例#7
0
 public static Configuration ConfigureDatabase(this Configuration cfg)
 {
     cfg.DataBaseIntegration(x =>
     {
         x.ConnectionProvider <DriverConnectionProvider>();
         x.ConnectionStringName = "Default";
         x.LogSqlInConsole      = true;
         x.LogFormattedSql      = true;
         x.Dialect <PostGis20Dialect>();
         x.Driver <NpgsqlDriver>();
     });
     cfg.AddAuxiliaryDatabaseObject(new SpatialAuxiliaryDatabaseObject(cfg));
     cfg.SetProperty("current_session_context_class", "web");
     cfg.SetProperty("show_sql", "true");
     cfg.SetProperty("format_sql", "true");
     cfg.AddAssembly(Assembly.GetExecutingAssembly());
     Metadata.AddMapping(cfg, MetadataClass.GeometryColumn);
     Metadata.AddMapping(cfg, MetadataClass.SpatialReferenceSystem);
     return(cfg);
 }
示例#8
0
        public override ISessionFactory GetSessionFactory()
        {
            if (_sessionFactory == null)
            {
                lock (_locker)
                {
                    if (_sessionFactory == null)
                    {
                        var config = new Configuration();

                        config.Mappings(map =>
                        {
                            map.DefaultCatalog = _database;
                            map.DefaultSchema  = "dbo";
                        });

                        config.DataBaseIntegration(db =>
                        {
                            db.LogFormattedSql  = false;
                            db.LogSqlInConsole  = false;
                            db.ConnectionString = _connectionString;
                            db.Timeout          = 10;
                            db.Dialect <MsSql2005Dialect>();
                            db.Driver <SqlClientDriver>();
                            db.IsolationLevel = IsolationLevel.ReadCommitted;
                            db.ConnectionProvider <DriverConnectionProvider>();
                        });

                        config.Cache(cache =>
                        {
                            cache.DefaultExpiration = 600;
                            cache.RegionsPrefix     = "sql-server-db";
                            cache.UseQueryCache     = true;
                            cache.Provider <NCacheProvider>();
                            cache.QueryCacheFactory <NCacheQueryCacheFactory>();
                        });



                        config.Properties.Add("cache.use_sliding_expiration", "true");

                        var mapper = new ModelMapper();
                        mapper.AddMappings(
                            Assembly.GetAssembly(
                                typeof(CustomersMap))
                            .GetExportedTypes());
                        var mapping =
                            mapper.CompileMappingForAllExplicitlyAddedEntities();

                        config.AddMapping(mapping);
                        config.AddAuxiliaryDatabaseObject(
                            new ServiceBrokerSettings());
                        config.AddAuxiliaryDatabaseObject(
                            new CustomerCountryByID_SP());
                        config.AddAuxiliaryDatabaseObject(
                            new CustomerContactNameAndPhoneByID_SP());
                        config.AddAuxiliaryDatabaseObject(
                            new SQLProductPollingDependencyTrigger());
                        config.AddAuxiliaryDatabaseObject(
                            new SQLEmployeePollingDependencyTrigger());

                        var schemaExport = new SchemaExport(config);
                        schemaExport.Create(true, true);

                        _sessionFactory = config.BuildSessionFactory();
                    }
                }
            }

            return(_sessionFactory);
        }
        public override ISessionFactory GetSessionFactory()
        {
            if (_sessionFactory == null)
            {
                lock (_locker)
                {
                    if (_sessionFactory == null)
                    {
                        NCacheProvider.ClearApplicationConfiguration();

                        var settings = new ConfigurationBuilder()
                                       .AddJsonFile("appsettings.json", false, true)
                                       .Build();

                        var applicationConfiguration = new ConfigurationSettings();
                        settings
                        .GetSection("ncache:ApplicationConfig")
                        .Bind(applicationConfiguration);

                        NCacheProvider.SetApplicationConfiguration(applicationConfiguration);

                        var config = new Configuration();

                        config.Mappings(map =>
                        {
                            map.DefaultSchema = "BRAD";
                        });

                        config.DataBaseIntegration(db =>
                        {
                            db.LogFormattedSql  = false;
                            db.LogSqlInConsole  = false;
                            db.ConnectionString = _connectionString;
                            db.Timeout          = 10;
                            db.Dialect <Oracle10gDialect>();
                            db.Driver <OracleManagedDataClientDriver>();
                            db.IsolationLevel = IsolationLevel.ReadCommitted;
                            db.ConnectionProvider <DriverConnectionProvider>();
                        });

                        config.Cache(cache =>
                        {
                            cache.DefaultExpiration = 600;
                            cache.RegionsPrefix     = "oracle-db";
                            cache.UseQueryCache     = true;
                            cache.Provider <NCacheProvider>();
                            cache.QueryCacheFactory <NCacheQueryCacheFactory>();
                        });

                        config.Properties.Add("cache.use_sliding_expiration", "true");

                        var mapper = new ModelMapper();
                        mapper.AddMappings(Assembly.GetAssembly(typeof(CustomersMap)).GetExportedTypes());
                        var mapping = mapper.CompileMappingForAllExplicitlyAddedEntities();
                        config.AddMapping(mapping);

                        config.AddAuxiliaryDatabaseObject(
                            new CustomerCountryByID_SP());
                        config.AddAuxiliaryDatabaseObject(
                            new OracleProductPollingDependencyTrigger());
                        config.AddAuxiliaryDatabaseObject(
                            new OracleEmployeePollingDependencyTrigger());

                        var schemaExport = new SchemaExport(config);
                        schemaExport.Create(true, true);

                        _sessionFactory = config.BuildSessionFactory();
                    }
                }
            }

            return(_sessionFactory);
        }
        public Configuration MapEntities(IEnumerable <Type> rootEntityTypes, MatchEntities matchEntities = null,
                                         Action <hibernatemapping> applyCustomMappings = null)
        {
            var entityTypes = GetEntityTypes(rootEntityTypes, matchEntities);

            var mappingXDoc = new hibernatemapping(); //this creates the mapping xml document

            //create class xml elements for each entity type
            foreach (var type in entityTypes)
            {
                var @class = new @class()
                {
                    name  = type.AssemblyQualifiedName,
                    table = type.Name.Pluralize(), //pluralized table names - could easily have checked for a [TableName("SomeTable")] attribute for custom overrides
                };
                [email protected](@class);
            }

            var conventions =
                GetAll <IClassConvention>() //get all the conventions from the current project
                .TopologicalSort()          //sort them into a dependency tree
                .ToList();

            using (Profiler.Step("Running conventions"))
            {
                //run througn all the conventions, updating the document as we go
                foreach (var convention in conventions)
                {
                    using (Profiler.Step("Running convention " + convention.ToString()))
                    {
                        foreach (var type in entityTypes)
                        {
                            var @class = [email protected](c => c.name == type.AssemblyQualifiedName);
                            convention.Apply(type, @class, entityTypes, mappingXDoc);
                        }
                    }
                }
            }

            if (applyCustomMappings != null)
            {
                applyCustomMappings(mappingXDoc);
            }

            var xml = mappingXDoc.ToString();

            if (_writeToDisk)
            {
                var path = HostingEnvironment.ApplicationPhysicalPath ??
                           Path.GetDirectoryName(
                    Assembly.GetExecutingAssembly().CodeBase.Replace("file:///", "").
                    Replace("/", "\\"));
                File.WriteAllText(Path.Combine(path, "config.hbm.xml"), xml);
            }
            _cfg.AddXml(xml);


            foreach (var classConvention in conventions)
            {
                foreach (var adbo in classConvention.AuxDbObjects())
                {
                    _cfg.AddAuxiliaryDatabaseObject(adbo);
                }
            }
            return(_cfg);
        }