private NHConfiguration CreateNHibernateConfiguration(Func <Type, bool> typePredicate)
        {
            var nhOptions = Configuration.GetSection("NHibernate").Get <NHibernateOptions>();

            // Configure NHibernate
            var configuration = new NHConfiguration();

            configuration.SetProperty(Environment.Dialect, nhOptions.Dialect);
            configuration.SetProperty(Environment.ConnectionDriver, nhOptions.ConnectionDriver);
            configuration.SetProperty(Environment.ConnectionString, nhOptions.ConnectionString);
            configuration.SetProperty(Environment.DefaultBatchFetchSize, "20");
            configuration.SetProperty(Environment.BatchSize, "20");
            configuration.SetProperty(Environment.Hbm2ddlKeyWords, "auto-quote");

            // Configure NHibernate mappings from Breeze.NHibernate.Tests.Models project
            var modelMapper = new ModelMapper();
            var types       = typeof(Order).Assembly.GetExportedTypes()
                              .Where(t => typeof(IConformistHoldersProvider).IsAssignableFrom(t) && !t.IsAbstract)
                              .Where(typePredicate)
                              .ToList();

            modelMapper.AddMappings(types);
            configuration.AddMapping(modelMapper.CompileMappingForAllExplicitlyAddedEntities());

            return(configuration);
        }
        void ApplyMappings(Configuration config)
        {
            var mapper = new ModelMapper();
            mapper.AddMapping<OutboxEntityMap>();

            config.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());
        }
        public ProgrammaticDatabaseConfigurationFull()
        {
            var config = new NHibernate.Cfg.Configuration()
                         .SetProperty(Environment.ReleaseConnections, "on_close")
                         .SetProperty(Environment.Dialect, typeof(SQLiteDialect).AssemblyQualifiedName)
                         .SetProperty(Environment.ConnectionDriver, typeof(SQLite20Driver).AssemblyQualifiedName)
                         .SetProperty(Environment.ConnectionString, "data source=:memory:")
                         .SetProperty(Environment.ShowSql, "true")
                         .SetProperty(Environment.UseQueryCache, "true")
                         .SetProperty(Environment.CurrentSessionContextClass,
                                      typeof(ThreadLocalSessionContext).AssemblyQualifiedName)
                         .SetProperty(Environment.BatchSize, "20")
                         .SetProperty(Environment.CommandTimeout, "30");

            var modelMapper = new ModelMapper();

            modelMapper.AddMappings(typeof(EmployeeMappings).Assembly.GetTypes());
            config.AddMapping(modelMapper.CompileMappingForAllExplicitlyAddedEntities());

            var sessionFactory = config.BuildSessionFactory();

            session = sessionFactory.OpenSession();
            using (var tx = session.BeginTransaction())
            {
                new SchemaExport(config).Execute(true, true, false, session.Connection, Console.Out);
                tx.Commit();
            }
            session.Clear();
        }
        /// <summary>
        /// Builds the session factory with the given properties. Database is updated if updateSchema is set
        /// </summary>
        /// <param name="nhibernateProperties"></param>
        /// <param name="updateSchema"></param>
        /// <returns></returns>
        public ISessionFactory Build(IDictionary<string, string> nhibernateProperties, bool updateSchema)
        {
            var scannedAssemblies = typesToScan.Select(t => t.Assembly).Distinct();

              var nhibernateConfiguration = new Configuration().SetProperties(nhibernateProperties);

              foreach (var assembly in scannedAssemblies)
            nhibernateConfiguration.AddAssembly(assembly);

              var mapping = new SagaModelMapper(typesToScan.Except(nhibernateConfiguration.ClassMappings.Select(x => x.MappedClass)));

              HackIdIntoMapping(mapping);

              nhibernateConfiguration.AddMapping(mapping.Compile());

              ApplyDefaultsTo(nhibernateConfiguration);

              if (updateSchema)
            UpdateDatabaseSchemaUsing(nhibernateConfiguration);

              try
              {
            return nhibernateConfiguration.BuildSessionFactory();
              }
              catch (Exception e)
              {
            if (e.InnerException != null)
              throw new ConfigurationErrorsException(e.InnerException.Message, e);

            throw;
              }
        }
예제 #5
0
        private void InitNHibernate()
        {
            var mapper = new ModelMapper();

            mapper.AddMappings(typeof(ProductoMap).Assembly.ExportedTypes);
            HbmMapping domainMapping = mapper.CompileMappingForAllExplicitlyAddedEntities();

            string connectionString = _appConfiguration.GetConnectionString("DefaultConnection");

            var configuration = new NHibernate.Cfg.Configuration();

            configuration.DataBaseIntegration(c =>
            {
                c.Dialect <NHibernate.Dialect.MySQLDialect>();
                c.ConnectionString = connectionString;
                //c.KeywordsAutoImport = Hbm2DDLKeyWords.AutoQuote;
                //c.SchemaAction = SchemaAutoAction.Validate;
                #if (DEBUG)
                c.LogFormattedSql = true;
                c.LogSqlInConsole = true;
                #endif
            });

            configuration.AddMapping(domainMapping);

            var sessionFactory = configuration.BuildSessionFactory();

            this.DbSession = sessionFactory.OpenSession();

            #if (DEBUG)
            NHibernateLogger.SetLoggersFactory(new NHLoggerFactory(this.Log));
            #endif
        }
        public ProgrammaticDatabaseConfiguration()
        {
            var config = new NHibernate.Cfg.Configuration()
                         .SetProperty(Environment.ReleaseConnections, "on_close")
                         .SetProperty(Environment.Dialect, typeof(SQLiteDialect).AssemblyQualifiedName)
                         .SetProperty(Environment.ConnectionDriver, typeof(SQLite20Driver).AssemblyQualifiedName)
                         .SetProperty(Environment.ConnectionString, "data source=:memory:")
                         .SetProperty(Environment.ShowSql, "true")
                         .SetProperty(Environment.FormatSql, "true");

            var modelMapper = new ModelMapper();

            modelMapper.AddMapping <EmployeeMappings>();
            modelMapper.AddMapping <AddressMappings>();
            modelMapper.AddMapping <BenefitMappings>();
            modelMapper.AddMapping <LeaveMappings>();
            modelMapper.AddMapping <SkillsEnhancementAllowanceMappings>();
            modelMapper.AddMapping <SeasonTicketLoanMappings>();
            modelMapper.AddMapping <CommunityMappings>();

            config.AddMapping(modelMapper.CompileMappingForAllExplicitlyAddedEntities());

            var sessionFactory = config.BuildSessionFactory();

            session = sessionFactory.OpenSession();
            using (var tx = session.BeginTransaction())
            {
                new SchemaExport(config).Execute(true, true, false, session.Connection, Console.Out);
                tx.Commit();
            }
            session.Clear();
        }
        protected override void Configure(NHibernate.Cfg.Configuration protoConfig)
        {
            var mapper = new ModelMapper();

            mapper.AddMapping <PersonMap>();
            protoConfig.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());
        }
예제 #8
0
        void ApplyMappings(Configuration config)
        {
            var mapper = new ModelMapper();

            mapper.AddMapping <OutboxEntityMap>();

            config.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());
        }
예제 #9
0
        protected override void Configure(NHibernate.Cfg.Configuration protoConfig)
        {
            protoConfig.Properties[NHibernate.Cfg.Environment.ShowSql] = "True";

            var mapper = new ModelMapper();

            mapper.AddMapping <PersonMap>();
            protoConfig.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());
        }
예제 #10
0
        Configuration createNHConfiguration()
        {
            var cfg = new Configuration();

            ModelMapper mapping = new ModelMapper();

            mapping.AddMappings(typeof(ProfileMapping).Assembly.GetTypes());
            cfg.AddMapping(mapping.CompileMappingForAllExplicitlyAddedEntities());
            cfg.Configure();
            return(cfg);
        }
        private static void ConfigureNhibernate(ref NHibernate.Cfg.Configuration config)
        {
            var mapper = new ModelMapper();
            //var assembly = Assembly.Load("IdentityServer4.Admin.Api");
            var list = AdminApiAssembly.GetExportedTypes().Where(x => !x.IsAbstract && IsMappingOf <IEntitySqlsMapper>(x));

            Console.WriteLine($"--------{list.Count()}-------");
            mapper.AddMappings(list);
            var domainMapping = mapper.CompileMappingForAllExplicitlyAddedEntities();

            config.AddMapping(domainMapping);
        }
        private void SetMappings(NHibernate.Cfg.Configuration configuration)
        {
            var mapper = new ModelMapper();

            mapper.AddMappings(MappingExtensions.GetMappingsAssembly <TDbContext>().GetTypes());

            var mappings = mapper.CompileMappingForAllExplicitlyAddedEntities();

            configuration.AddMapping(mappings);

            SchemaMetadataUpdater.QuoteTableAndColumns(configuration, new MsSql2012Dialect());
        }
        //    public static void ConfigureOldDatabase(Dictionary<string, string> properties)
        //    {

        //        var configuration = new Configuration { Properties = properties };

        //        OldSessionFactory = Fluently.Configure(configuration).Database(MySQLConfiguration.Standard)
        //.Mappings(m => m.FluentMappings.AddFromAssemblyOf<BodyArchitect.DataAccess.Converter.V4_V5.Mappings.Old.ProfileMapping>())
        //.ExposeConfiguration((cfg =>
        //                          {
        //                              var timeout = TimeSpan.FromMinutes(30).TotalSeconds;
        //                              cfg.SetProperty("command_timeout", timeout.ToString());
        //                          })).BuildSessionFactory();
        //        OldDbConfiguration = configuration;
        //    }

        public static void ConfigureNewDatabase(Dictionary <string, string> properties)
        {
            var configuration = new Configuration {
                Properties = properties
            };

            ModelMapper mapping = new ModelMapper();

            mapping.AddMappings(typeof(ProfileMapping).Assembly.GetTypes());
            configuration.AddMapping(mapping.CompileMappingForAllExplicitlyAddedEntities());
            NewDbConfiguration = configuration;
            NewSessionFactory  = configuration.BuildSessionFactory();
        }
        protected override void PostProcessConfiguration(NHibernate.Cfg.Configuration config)
        {
            base.PostProcessConfiguration(config);

            var mapper = new ModelMapper();

            foreach (var asm in ClassMappingAssemblies.Select(Assembly.Load))
            {
                mapper.AddMappings(asm.GetTypes());
            }

            foreach (var mapping in mapper.CompileMappingForEachExplicitlyAddedEntity())
            {
                config.AddMapping(mapping);
            }
        }
예제 #15
0
        private ISessionFactory BuildSessionFactory()
        {
            var configuration = new NHibernate.Cfg.Configuration();

            configuration.SetProperty(NHibernate.Cfg.Environment.ConnectionString, Configuration.GetConnectionString("Store"));
            configuration.SetProperty(NHibernate.Cfg.Environment.Dialect, typeof(MsSql2012Dialect).AssemblyQualifiedName);

            var modelMapper = new ModelMapper();

            modelMapper.AddMappings(typeof(Startup).Assembly.GetExportedTypes());

            var hbm = modelMapper.CompileMappingForAllExplicitlyAddedEntities();

            configuration.AddMapping(hbm);

            return(configuration.BuildSessionFactory());
        }
예제 #16
0
        private static Configuration BuildDatabaseConfiguration()
        {
            var config = new Configuration().Configure();

            var mapper = new ModelMapper();

            mapper.AddMappings(Assembly.GetExecutingAssembly().GetExportedTypes());

            var domainMapping = mapper.CompileMappingForAllExplicitlyAddedEntities();

            if (domainMapping.Items != null)
            {
                config.AddMapping(domainMapping);
            }

            return(config);
        }
예제 #17
0
        /// <summary>
        /// Builds the session factory with the given properties. Database is updated if updateSchema is set
        /// </summary>
        /// <param name="nhibernateProperties"></param>
        /// <param name="updateSchema"></param>
        /// <returns></returns>
        public ISessionFactory Build(IDictionary <string, string> nhibernateProperties, bool updateSchema)
        {
            var scannedAssemblies = _typesToScan.Select(t => t.Assembly).Distinct();

            var nhibernateConfiguration = new Configuration().SetProperties(nhibernateProperties);

            foreach (var assembly in scannedAssemblies)
            {
                nhibernateConfiguration.AddAssembly(assembly);
            }

            var modelMapper = new SagaModelMapper(_typesToScan.Except(nhibernateConfiguration.ClassMappings.Select(x => x.MappedClass)));

            var mapping = modelMapper.Compile();

            //var serializer = new XmlSerializer(typeof (HbmMapping));
            //using (var writer = XmlWriter.Create("sagamappings.xml", new XmlWriterSettings() { Indent = true}))
            //serializer.Serialize(writer, mapping);

            nhibernateConfiguration.AddMapping(mapping);

            ApplyDefaultsTo(nhibernateConfiguration);

            if (updateSchema)
            {
                UpdateDatabaseSchemaUsing(nhibernateConfiguration);
            }

            //using (var writer = new StreamWriter("schema.sql"))
            //  new SchemaExport(nhibernateConfiguration)
            //    .Execute(s => writer.Write(s), true, false);

            try
            {
                return(nhibernateConfiguration.BuildSessionFactory());
            }
            catch (Exception e)
            {
                if (e.InnerException != null)
                {
                    throw new ConfigurationErrorsException(e.InnerException.Message, e);
                }

                throw;
            }
        }
예제 #18
0
        private NHConfiguration CreateNHibernateConfiguration()
        {
            var config = new NHConfiguration();

            config.SetProperty(Environment.Dialect, NHibernateOptions.Dialect);
            config.SetProperty(Environment.ConnectionDriver, NHibernateOptions.ConnectionDriver);
            config.SetProperty(Environment.ConnectionString, NHibernateOptions.ConnectionString);
            config.SetProperty(Environment.DefaultBatchFetchSize, "20");
            config.SetProperty(Environment.BatchSize, "20");
            config.SetProperty(Environment.Hbm2ddlKeyWords, "auto-quote");
            ConfigureNHibernate(config);

            var modelMapper = new ModelMapper();

            ConfigureMappings(modelMapper);
            config.AddMapping(modelMapper.CompileMappingForAllExplicitlyAddedEntities());

            return(config);
        }
예제 #19
0
        /// <summary>
        /// Override to give the configuration of mapping by code assemblies
        /// </summary>
        /// <param name="config"></param>
        protected override void PostProcessConfiguration(NHibernate.Cfg.Configuration config)
        {
            base.PostProcessConfiguration(config);

            // add any conformist mappings in the listed assemblies:
            var mapper = new ModelMapper();

            //mapper.AddMappings(Assembly.GetAssembly(typeof(SecurityMap)).GetExportedTypes());
            mapper.AddMappings(Assembly.GetAssembly(typeof(OrderMap)).GetExportedTypes());
            mapper.AddMappings(Assembly.GetAssembly(typeof(FillMap)).GetExportedTypes());
            mapper.AddMappings(Assembly.GetAssembly(typeof(TradeMap)).GetExportedTypes());
            mapper.AddMappings(Assembly.GetAssembly(typeof(StrategyMap)).GetExportedTypes());
            foreach (var asm in ConformistMappingAssemblies.Select(Assembly.Load))
            {
                mapper.AddMappings(asm.GetTypes());
            }

            foreach (var mapping in mapper.CompileMappingForEachExplicitlyAddedEntity())
            {
                config.AddMapping(mapping);
            }
        }
        public void Setup()
        {
            if (File.Exists(_tempDBPath))
            {
                File.Delete(_tempDBPath);
            }

            var config = new NHibernate.Cfg.Configuration()
                         .DataBaseIntegration(db =>
            {
                db.ConnectionString = $@"Data Source=""{_tempDBPath}"";Version=3;New=True;";
                db.Dialect <SQLiteDialect>();
            });

            var mapper = new ModelMapper();

            mapper.AddMappings(new[] { typeof(TestEntityMapping) });
            config.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());
            _sessionFactory = config.BuildSessionFactory();
            //Create db schema
            new SchemaExport(config).Execute(true, true, false);
        }
예제 #21
0
        /// <summary>
        /// Builds the session factory with the given properties. Database is updated if updateSchema is set
        /// </summary>
        /// <param name="nhibernateProperties"></param>
        /// <param name="updateSchema"></param>
        /// <returns></returns>
        public ISessionFactory Build(IDictionary <string, string> nhibernateProperties, bool updateSchema)
        {
            var scannedAssemblies = typesToScan.Select(t => t.Assembly).Distinct();

            var nhibernateConfiguration = new Configuration().SetProperties(nhibernateProperties);

            foreach (var assembly in scannedAssemblies)
            {
                nhibernateConfiguration.AddAssembly(assembly);
            }

            var mapping = new SagaModelMapper(typesToScan.Except(nhibernateConfiguration.ClassMappings.Select(x => x.MappedClass)));

            ApplyConventions(mapping);

            nhibernateConfiguration.AddMapping(mapping.Compile());

            ApplyDefaultsTo(nhibernateConfiguration);

            if (updateSchema)
            {
                UpdateDatabaseSchemaUsing(nhibernateConfiguration);
            }

            try
            {
                return(nhibernateConfiguration.BuildSessionFactory());
            }
            catch (Exception e)
            {
                if (e.InnerException != null)
                {
                    throw new ConfigurationErrorsException(e.InnerException.Message, e);
                }

                throw;
            }
        }
예제 #22
0
        private static Configuration BuildConfiguration()
        {
            var configuration = new Configuration()
                                .SetProperties(new Dictionary <string, string>
            {
                {
                    Environment.ConnectionString,
                    ConfigurationManager.ConnectionStrings["NServiceBus/Persistence"].ConnectionString
                },
                {
                    Environment.Dialect,
                    "NHibernate.Dialect.MsSql2012Dialect"
                }
            });

            var mapper = new ModelMapper();

            mapper.AddMapping <OrderMap>();
            var mappings = mapper.CompileMappingForAllExplicitlyAddedEntities();

            configuration.AddMapping(mappings);
            return(configuration);
        }
예제 #23
0
        private void SetupNHibernate()
        {
            var config = new Configuration();
            // where to get database mappings from
            config.Configure(); // look at my App.config, find a hibernate-configuration section, and use those options to build session

            var mapper = new ModelMapper();
            // where to get class (table) mappings from
            mapper.AddMapping<UserMap>();

            config.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());

            _sessionFactory = config.BuildSessionFactory();
        }