#pragma warning disable 1591
        public void AddMappings(ref global::NHibernate.Cfg.Configuration config)
        {
            LoadAssemblies();
            foreach (var asm in AppDomain.CurrentDomain.GetAssemblies())
            {
                // при любом обращении к динамической сборке появляется Exception
                try {
                    var tmp = asm.Location;
                } catch (Exception) {
                    continue;
                }
                if (IsSearchMappingsInAssembly(asm))
                {
                    config.AddAssembly(asm);
                    if (this.logger?.IsEnabled(LogLevel.Information) == true)
                    {
                        this.logger.LogInformation("Mappings added from assembly: " + asm.FullName);
                    }
                }
                else
                {
                    if (this.logger?.IsEnabled(LogLevel.Debug) == true)
                    {
                        this.logger.LogDebug("Skip finding mappings from assembly: " + asm.FullName);
                    }
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Builds the session factory with the given properties. Database is updated if updateSchema is set
        /// </summary>
        public ISessionFactory Build(Configuration nhibernateConfiguration)
        {
            var scannedAssemblies = typesToScan.Select(t => t.Assembly).Distinct();

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

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

            nhibernateConfiguration.AddMapping(modelMapper.Compile());

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

                throw;
            }
        }
        /// <summary>
        /// Builds the session factory with the given properties. Database is updated if updateSchema is set
        /// </summary>
        public ISessionFactory Build(Configuration nhibernateConfiguration)
        {
            var scannedAssemblies = typesToScan.Select(t => t.Assembly).Distinct();

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

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

            nhibernateConfiguration.AddMapping(modelMapper.Compile());

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

                throw;
            }
        }
예제 #4
0
        /// <summary>
        /// Configures NHibernate
        /// </summary>
        public void Configure()
        {
            // Arashi.Core.NHibernate

             configuration = new Configuration();
             configuration.Configure();
             configuration = configuration.AddAssembly("Arashi.Core.NHibernate");

             SessionFactory = configuration.BuildSessionFactory();
        }
예제 #5
0
        protected virtual ISessionFactory CreateFactory()
        {
            Logger.Info("Loading Configuration...");

            try
            {
                var config = new global::NHibernate.Cfg.Configuration();

                var strat = new EnhancedNamingStrategy
                {
                    TablePrefix = Settings.TablePrefix
                };
                config.SetNamingStrategy(strat);

                config.SetProperties(Settings.Properties);
                foreach (var directory in Settings.MappingDirectories)
                {
                    var dir = new DirectoryInfo(directory);
                    config.AddDirectory(dir);
                }
                foreach (var file in Settings.MappingFiles)
                {
                    config.AddFile(file);
                }
                foreach (var assembly in Settings.MappingAssemblies)
                {
                    config.AddAssembly(assembly);
                }

                return(config.BuildSessionFactory());
            }
            catch (Exception x)
            {
                Logger.Error(x, "Error while loading configuration.");
                throw;
            }
            finally
            {
                Logger.Info("Configuration successfully loaded.");
            }
        }
예제 #6
0
 static NHibernateHelper()
 {
     _configuration = new global::NHibernate.Cfg.Configuration();
     _configuration.AddAssembly(Config.NhibernateAssembly);
     _sessionFactory = _configuration.BuildSessionFactory();
 }