コード例 #1
0
        protected override void Configure(Configuration configuration)
        {
            base.Configure(configuration);

            configuration.SetProperty("hibernate.search.default.directory_provider", typeof(FSDirectoryProvider).AssemblyQualifiedName);
            configuration.SetProperty(Environment.AnalyzerClass, typeof(StopAnalyzer).AssemblyQualifiedName);
        }
コード例 #2
0
        /// <summary>
        /// Wrapper class to produce an Ado.Net Datatable from any entity, 
        /// and perform SqlBulkCopy operations
        /// </summary>
        public SqlEntityBulkCopy(string sqlCnnString, Type entityType)
        {
            if (Cfg == null)
            {
                //Note: The NHibernate.Cfg.Configuration is meant only as an initialization-time object.
                //Note: NHibernate.ISessionFactory is immutable and does not retain any association back to the Session

                Cfg = new Configuration();
                //Cfg.SetProperty("proxyfactory.factory_class", "NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle");
                Cfg.SetProperty("dialect", "NHibernate.Dialect.MsSql2008Dialect");
                Cfg.SetProperty("connection.provider", "NHibernate.Connection.DriverConnectionProvider");
                Cfg.SetProperty("connection.driver_class", "NHibernate.Driver.SqlClientDriver");
                Cfg.SetProperty("connection.connection_string", sqlCnnString);

                //add all the mappings embedded in this assembly
                Cfg.AddAssembly(typeof(SqlEntityBulkCopy).Assembly);

                var sessionFactory = Cfg.BuildSessionFactory();
                SessionFactoryImpl = (ISessionFactoryImplementor)sessionFactory;
            }
            EntityType = entityType;
            //_session = SessionFactoryImpl.OpenSession();
            _metaData = SessionFactoryImpl.GetClassMetadata(EntityType);
            _persistentClass = Cfg.GetClassMapping(EntityType);
            _sqlCnn = new SqlConnection(sqlCnnString);
            _sqlBulkCopy = new SqlBulkCopy(_sqlCnn);

            //Debug.WriteLine("EntityName = " + _metaData.EntityName);
            //Debug.WriteLine("IdentifierPropertyName = " + _metaData.IdentifierPropertyName);
            //Debug.WriteLine("IdentifierType = " + _metaData.IdentifierType);

            BuildDataTable();
            BuildAndMapSqlBulkCopy();
        }
コード例 #3
0
        protected override void AlterConfiguration(Configuration config) {
            config.SetProperty(NHibernate.Cfg.Environment.PrepareSql, Boolean.TrueString);

            if (IsAzureSql()) {
                config.SetProperty(NHibernate.Cfg.Environment.TransactionStrategy, typeof(ReliableAdoNetWithDistributedTransactionFactory).AssemblyQualifiedName);
            }
        }
コード例 #4
0
ファイル: Fixture.cs プロジェクト: marchlud/nhibernate-core
		protected override void Configure(Configuration configuration)
		{
			configuration.SetProperty(Environment.UseSecondLevelCache, "false");
			configuration.SetProperty(Environment.UseQueryCache, "false");
			configuration.SetProperty(Environment.CacheProvider, null);
			configuration.SetListener(ListenerType.PostCommitDelete, new PostCommitDelete());
		}
コード例 #5
0
    static void Main()
    {
        Console.Title = "Samples.CustomNhMappings.XmlMapping";
        var nhConfiguration = new Configuration();

        nhConfiguration.SetProperty(Environment.ConnectionProvider, "NHibernate.Connection.DriverConnectionProvider");
        nhConfiguration.SetProperty(Environment.ConnectionDriver, "NHibernate.Driver.Sql2008ClientDriver");
        nhConfiguration.SetProperty(Environment.Dialect, "NHibernate.Dialect.MsSql2008Dialect");
        nhConfiguration.SetProperty(Environment.ConnectionStringName, "NServiceBus/Persistence");

        AddMappingsFromFilesystem(nhConfiguration);

        var busConfiguration = new BusConfiguration();
        busConfiguration.EndpointName("Samples.CustomNhMappings.XmlMapping");
        busConfiguration.UseSerialization<JsonSerializer>();
        busConfiguration.EnableInstallers();

        var persistence = busConfiguration.UsePersistence<NHibernatePersistence>();
        persistence.UseConfiguration(nhConfiguration);

        using (var bus = Bus.Create(busConfiguration).Start())
        {
            var startOrder = new StartOrder
            {
                OrderId = "123"
            };
            bus.SendLocal(startOrder);
            
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
    }
コード例 #6
0
 private static void ConfigureConnection(Configuration configuration, string connectionString)
 {
     configuration.SetProperty(Environment.Dialect, "NHibernate.Dialect.MsSql2005Dialect");
     configuration.SetProperty(Environment.ConnectionDriver, "NHibernate.Driver.SqlClientDriver");
     configuration.SetProperty(Environment.ConnectionProvider, "NHibernate.Connection.DriverConnectionProvider");
     configuration.SetProperty(Environment.ConnectionString, connectionString);
 }
コード例 #7
0
    static void Main()
    {
        Configuration nhConfiguration = new Configuration();

        nhConfiguration.SetProperty(Environment.ConnectionProvider, "NHibernate.Connection.DriverConnectionProvider");
        nhConfiguration.SetProperty(Environment.ConnectionDriver, "NHibernate.Driver.Sql2008ClientDriver");
        nhConfiguration.SetProperty(Environment.Dialect, "NHibernate.Dialect.MsSql2008Dialect");
        nhConfiguration.SetProperty(Environment.ConnectionStringName, "NServiceBus/Persistence");

        BusConfiguration busConfiguration = new BusConfiguration();
        busConfiguration.EndpointName("Samples.CustomNhMappings.Default");
        busConfiguration.UseSerialization<JsonSerializer>();
        busConfiguration.EnableInstallers();

        busConfiguration
            .UsePersistence<NHibernatePersistence>()
            .UseConfiguration(nhConfiguration);

        using (IBus bus = Bus.Create(busConfiguration).Start())
        {
            bus.SendLocal(new StartOrder
            {
                OrderId = "123"
            });

            bus.SendLocal(new CompleteOrder
            {
                OrderId = "123"
            });

            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
    }
コード例 #8
0
ファイル: SessionFactory.cs プロジェクト: Nerielle/Learning
        static SessionFactory()
        {
            var connectionString = @"Data Source=.\sqlexpress2014;Initial Catalog=BlogDatabase;Integrated Security=True";

            var configuration = new Configuration();
            configuration.DataBaseIntegration(
                x =>
                {
                    x.ConnectionString = connectionString;
                    x.Driver<SqlClientDriver>();
                    x.Dialect<MsSql2012Dialect>();
                });
            configuration.SetProperty(Environment.UseQueryCache, "true");
            configuration.SetProperty(Environment.UseSecondLevelCache, "true");
            configuration.SetProperty(Environment.CacheProvider, typeof(SysCacheProvider).AssemblyQualifiedName);
            var mapper = new ModelMapper();
            mapper.AddMappings(Assembly.GetExecutingAssembly().GetExportedTypes());

            mapper.BeforeMapBag += (modelInspector, member1, propertyCustomizer) =>
            {
                propertyCustomizer.Inverse(true);
                propertyCustomizer.Cascade(Cascade.All | Cascade.DeleteOrphans);
            };
            mapper.BeforeMapManyToOne +=
                (modelInspector, member1, propertyCustomizer) => { propertyCustomizer.NotNullable(true); };
            mapper.BeforeMapProperty += (inspector, member, customizer) => customizer.NotNullable(true);
            var mapping = mapper.CompileMappingForAllExplicitlyAddedEntities();
            configuration.AddMapping(mapping);
            sessionFactory = configuration.BuildSessionFactory();
        }
コード例 #9
0
        /// <summary>
        /// Parses the connection string and creates the NHibernate configuration
        /// </summary>
        /// <param name="connect">NHibernate dialect, driver and connection string separated by ';'</param>
        private void ParseConnectionString(string connect)
        {
            // Split out the dialect, driver, and connect string
            char[] split = { ';' };
            string[] parts = connect.Split(split, 3);
            if (parts.Length != 3)
            {
                // TODO: make this a real exception type
                throw new Exception("Malformed Inventory connection string '" + connect + "'");
            }

            dialect = parts[0];

            // NHibernate setup
            configuration = new Configuration();
            configuration.SetProperty(Environment.ConnectionProvider,
                            "NHibernate.Connection.DriverConnectionProvider");
            configuration.SetProperty(Environment.Dialect,
                            "NHibernate.Dialect." + dialect);
            configuration.SetProperty(Environment.ConnectionDriver,
                            "NHibernate.Driver." + parts[1]);
            configuration.SetProperty(Environment.ConnectionString, parts[2]);
            //configuration.SetProperty(Environment.ShowSql, "true");
            //configuration.SetProperty(Environment.GenerateStatistics, "false");
            //configuration.AddAssembly("WebDAVSharp.NHibernateStorage");
            configuration.AddAssembly("ModCableBeach");

        }
コード例 #10
0
 public static Boolean TestAccount(DatabaseAccountToken token, Boolean testMapping = false)
 {
     try
     {
         Configuration configuration = new Configuration();
         configuration.SetProperty(NHibernate.Cfg.Environment.ConnectionString, token.ConnectionString);
         configuration.SetProperty(NHibernate.Cfg.Environment.ConnectionDriver, String.Format("NHibernate.Driver.{0}", token.DatabaseDriver));
         configuration.SetProperty(NHibernate.Cfg.Environment.Dialect, String.Format("NHibernate.Dialect.{0}", token.DatabaseDialect));
         if (testMapping)
         {
             configuration.AddXml(token.Mapping);
             using (ISessionFactory sessionFactory = configuration.BuildSessionFactory())
             {
                 using (ISession session = sessionFactory.OpenSession())
                 {
                     return session.IsConnected;
                 }
             }
         }
         else
         {
             using (ISessionFactory sessionFactory = configuration.BuildSessionFactory())
             {
                 using (ISession session = sessionFactory.OpenSession())
                 {
                     return session.IsConnected;
                 }
             }
         }
     }
     catch (Exception ex)
     {
         return false;
     }
 }
コード例 #11
0
		protected override void Configure(Configuration configuration)
		{
			base.Configure(configuration);
			configuration.SetProperty(Environment.UseQueryCache, "true");
			configuration.SetProperty(Environment.CacheRegionPrefix, "criteriaquerytest");
			configuration.SetProperty(Environment.UseSecondLevelCache, "true");
		}
コード例 #12
0
		protected override void Configure(Configuration cfg)
		{
			base.Configure(cfg);
			cfg.SetProperty(Environment.ReleaseConnections, "after_transaction");
			//cfg.SetProperty(Environment.ConnectionProvider, typeof(DummyConnectionProvider).AssemblyQualifiedName);
			//cfg.SetProperty(Environment.GenerateStatistics, "true");
			cfg.SetProperty(Environment.BatchSize, "0");
		}
コード例 #13
0
		public void CacheDisabled()
		{
			Configuration cfg = new Configuration();
			cfg.SetProperty(Environment.UseSecondLevelCache, "false");
			cfg.SetProperty(Environment.UseQueryCache, "false");
			cfg.SetProperty(Environment.CacheProvider, null);
			cfg.BuildSessionFactory().Close();
		}
コード例 #14
0
 protected override void Configure(Configuration configuration)
 {
     base.Configure(configuration);
     configuration.SetProperty("hibernate.search.default.directory_provider", typeof(Store.RAMDirectoryProvider).AssemblyQualifiedName);
     configuration.SetProperty(Environment.AnalyzerClass, typeof(Lucene.Net.Analysis.StopAnalyzer).AssemblyQualifiedName);
     configuration.SetProperty(Environment.WorkerScope, "transaction");
     configuration.SetProperty(Environment.WorkerExecution, "sync"); // Note: It is WorkerPrefix in the Java version, but it must be a typo
 }
コード例 #15
0
ファイル: SessionBuilder.cs プロジェクト: nenadjesic/xilion
 private static void InitializeEnvers(NHibernate.Cfg.Configuration configuration)
 {
     configuration.SetProperty("nhibernate.envers.audit_table_suffix", "_Audit");
     configuration.SetProperty("nhibernate.envers.revision_field_name", "Revision");
     configuration.SetProperty("nhibernate.envers.revision_type_field_name", "RevisionType");
     configuration.SetProperty("nhibernate.envers.store_data_at_delete", "true");
     configuration.IntegrateWithEnvers(new AttributeConfiguration());
 }
コード例 #16
0
ファイル: config.cs プロジェクト: Gustav76/SIMO_CORE
 public static void configurarSesiones()
 {
     cfg = new Configuration();
     cfg.SetProperty("dialect", "NHibernate.Dialect.MySQLDialect");
     cfg.SetProperty("connection.driver_class", "NHibernate.Driver.MySqlDataDriver");
     cfg.SetProperty("connection.connection_string", "Server='" + servidor + "';Database='" + baseDatos + "';User ID=" + usuario + ";Password="******";CharSet=utf8");
     cfg.AddAssembly("SIMO_CORE");
     sesiones = cfg.BuildSessionFactory();
 }
コード例 #17
0
        public static Configuration ToConfiguration(this SessionConfiguration sessionConfiguration)
        {
            var configuration = new Configuration();
            configuration.SetProperty(Environment.Dialect, sessionConfiguration.Dialect);
            configuration.SetProperty(Environment.ConnectionDriver, sessionConfiguration.ConnectionDriver);
            configuration.SetProperty(Environment.ConnectionString, sessionConfiguration.ConnectionString);

            return configuration;
        }
コード例 #18
0
        private Configuration CreateNHibernateConfig(AppConfig config)
        {
            var nhConfig = new Configuration();
            nhConfig.SetProperty(Environment.Dialect, typeof(MsSql2008Dialect).AssemblyQualifiedName);
            var connectionString = ConfigurationManager.AppSettings["SQLSERVER_CONNECTION_STRING"] ?? config.ConnectionString;
            nhConfig.SetProperty(Environment.ConnectionString, connectionString);
            nhConfig.AddAssembly(ThisAssembly);

            return nhConfig;
        }
コード例 #19
0
ファイル: SessionFactory.cs プロジェクト: ebouwsema/quikpix
        private static void BuildSchema(Configuration cfg)
        {
            if (!File.Exists("catalog.db"))
                new SchemaExport(cfg)
                    .Create(false, true);

            // People advice not to use NHibernate.Cache.HashtableCacheProvider for production
            cfg.SetProperty("cache.provider_class", "NHibernate.Cache.HashtableCacheProvider");
            cfg.SetProperty("cache.use_second_level_cache", "true");
            cfg.SetProperty("cache.use_query_cache", "true");
        }
コード例 #20
0
        private void SetSearchProps(Configuration cfg)
        {
            cfg.SetProperty(
            "hibernate.search.default.directory_provider",
            typeof(FSDirectoryProvider)
            .AssemblyQualifiedName);

              cfg.SetProperty(
            "hibernate.search.default.indexBase",
            "~/Index");
        }
コード例 #21
0
        protected override void Configure(Configuration configuration)
        {
            base.Configure(configuration);
            DeleteBaseIndexDir();
            FileInfo sub = BaseIndexDir;
            Directory.CreateDirectory(sub.FullName);

            configuration.SetProperty("hibernate.search.default.indexBase", sub.FullName);
            configuration.SetProperty("hibernate.search.default.directory_provider", typeof(FSDirectoryProvider).AssemblyQualifiedName);
            configuration.SetProperty(NHibernate.Search.Environment.AnalyzerClass, typeof(StopAnalyzer).AssemblyQualifiedName);
        }
コード例 #22
0
        private static Configuration CreatConfiguration()
        {
            ModelMapper mapper = GetMapper();
            HbmMapping mapping = mapper.CompileMappingForAllExplicitlyAddedEntities();

            var configuration = new Configuration();
            configuration.SetProperty(Environment.Dialect, "NHibernate.Dialect.MsSql2012Dialect");
            configuration.SetProperty(Environment.ConnectionString, @"Data Source=.\sqlexpress;Initial Catalog=OrdersDatabase;Integrated Security=True");
            configuration.AddMapping(mapping);

            return configuration;
        }
コード例 #23
0
ファイル: Program.cs プロジェクト: tzsage/LuceneExamples
 private static void Configure()
 {
     cfg = new Configuration();
     //cfg.SetProperty("hibernate.search.default.directory_provider", typeof(RAMDirectoryProvider).AssemblyQualifiedName);
     cfg.SetProperty("hibernate.search.default.directory_provider", typeof(FSDirectoryProvider).AssemblyQualifiedName);
     cfg.SetProperty(NHibernate.Search.Environment.AnalyzerClass, typeof(StopAnalyzer).AssemblyQualifiedName);
     cfg.SetListener(NHibernate.Event.ListenerType.PostUpdate, new FullTextIndexEventListener());
     cfg.SetListener(NHibernate.Event.ListenerType.PostInsert, new FullTextIndexEventListener());
     cfg.SetListener(NHibernate.Event.ListenerType.PostDelete, new FullTextIndexEventListener());
     cfg.Configure();
     sf = cfg.BuildSessionFactory();
 }
コード例 #24
0
        protected override void Customize(Configuration config)
        {
            config.DataBaseIntegration(x =>
            {
                x.ConnectionString = ConnectionString;
                x.Dialect<SQLiteDialect>();
                x.Driver<SQLite20Driver>();
            });

            config.SetProperty("cache.use_second_level_cache", "false");
            config.SetProperty("generate_statistics", "true");
            config.SetProperty("auto-import", "false");
        }
コード例 #25
0
ファイル: NHConfig.cs プロジェクト: kpaligian/simple_app
        public void OpenSession()
        {
            var config = new Configuration();
            config.SetProperty("connection.driver_class", "NHibernate.Driver.SqlClientDriver");
            config.SetProperty("dialect","NHibernate.Dialect.MsSql2012Dialect");
            config.SetProperty("connection.connection_string", "Data Source=localhost\\SQLEXPRESS;initial catalog=simple-db;Integrated Security=SSPI;");
            config.SetProperty("connection.release_mode","on_close");

            var mapper = new ApplicationMapper();
            config.AddMapping(mapper.Map());

            _factory = config.BuildSessionFactory();
        }
コード例 #26
0
ファイル: NHibernateModule.cs プロジェクト: Readify/IocDevDay
        static ISessionFactory ConfigureSessionFactory()
        {
            var cfg = new Configuration();

            cfg.SetProperty("dialect", "NHibernate.Dialect.MsSql2008Dialect");
            cfg.SetProperty("connection.provider", "NHibernate.Connection.DriverConnectionProvider, NHibernate");
            cfg.SetProperty("connection.connection_string_name", "TinySheets");
            cfg.SetProperty("proxyfactory.factory_class", "NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle");

            cfg.AddAssembly(typeof(NHibernateModule).Assembly);

            return cfg.BuildSessionFactory();
        }
コード例 #27
0
        public void Setup()
        {
            _cfg = new Configuration();

            _cfg.SetProperty("connection.provider", "NHibernate.Connection.DriverConnectionProvider");
            _cfg.SetProperty("connection.driver_class", "NHibernate.Driver.SqlClientDriver");
            _cfg.SetProperty("connection.connection_string", _connectionString);
            _cfg.SetProperty("dialect", "NHibernate.Dialect.MsSql2005Dialect");
            _cfg.SetProperty("default_schema", "bus");

            _cfg.AddAssembly(typeof (NHibernateSagaRepository<>).Assembly);
            _cfg.AddAssembly(typeof (RegisterUserStateMachine).Assembly);
            _cfg.AddAssembly(typeof (SagaRepository_Specs).Assembly);
        }
コード例 #28
0
        public static ISessionFactory CreateSessionFactory()
        {
            Configuration   config;
            ISessionFactory factory;
            HttpContext     currentContext = HttpContext.Current;
            cAppConfig      oApp;
            Utility         oUtil = new Utility();

            config = new NHibernate.Cfg.Configuration();

            if (HttpContext.Current == null)
            {
                oApp = new cAppConfig(ConfigFileType.AppConfig);
                config.SetProperty("hibernate.connection.connection_string", oApp.GetValue("hibernate.connection.connection_string"));
            }
            else
            {
                oApp = new cAppConfig(ConfigFileType.WebConfig);
                //	string strDesEnc  = oUtil.Decrypt(oApp.GetValue("hibernate.connection.connection_string"));
                config.SetProperty("hibernate.connection.connection_string", oApp.GetValue("hibernate.connection.connection_string"));
            }


            if (config == null)
            {
                throw new InvalidOperationException("NHibernate configuration is null.");
            }

            if (HttpContext.Current == null)
            {
                config.SetProperty("hibernate.connection.connection_string", oApp.GetValue("hibernate.connection.connection_string"));
            }

            config.AddAssembly("Business");
            factory = config.BuildSessionFactory();

            if (currentContext != null)
            {
                currentContext.Items[KEY_NHIBERNATE_FACTORY] = factory;
            }

            if (factory == null)
            {
                throw new InvalidOperationException("Call to Configuration.BuildSessionFactory() returned null.");
            }
            else
            {
                return(factory);
            }
        }
コード例 #29
0
		protected override void AddMappings(Configuration configuration)
		{
			var xml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><hibernate-mapping xmlns=\"urn:nhibernate-mapping-2.2\" namespace=\"NHibernate.Test.VersionTest.Db\" assembly=\"NHibernate.Test\"><class name=\"ProductWithVersionAndLazyProperty\"><id name=\"Id\" generator=\"assigned\"/><version name=\"Version\" generated=\"always\" unsaved-value=\"null\" type=\"BinaryBlob\" access=\"nosetter.camelcase-underscore\"><column name=\"version\" not-null=\"false\" sql-type=\"timestamp\" /></version><property name=\"Summary\" lazy=\"true\"/></class></hibernate-mapping>";
			var doc = new XmlDocument();
			doc.LoadXml(xml);

			configuration.AddDocument(doc);

			base.AddMappings(configuration);

			configuration.SetProperty(NHibernate.Cfg.Environment.Hbm2ddlAuto, SchemaAutoAction.Recreate.ToString());
			configuration.SetProperty(NHibernate.Cfg.Environment.FormatSql, Boolean.TrueString);
			configuration.SetProperty(NHibernate.Cfg.Environment.ShowSql, Boolean.TrueString);
		}
コード例 #30
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TemporaryDatabase"/> class.
 /// </summary>
 public TemporaryDatabase()
 {
     _database = new TemporarySqlDatabase();
     var configuration = new Configuration();
     configuration.SetInterceptor(new PostSaveInterceptor());
     configuration.SetProperty("connection.provider", "NHibernate.Connection.DriverConnectionProvider");
     configuration.SetProperty("connection.driver_class", "NHibernate.Driver.SqlClientDriver");
     configuration.SetProperty("connection.connection_string", _database.ConnectionString);
     configuration.SetProperty("dialect", "NHibernate.Dialect.MsSql2005Dialect");
     configuration.SetProperty("show_sql", "true");
     configuration.AddAssembly(typeof(IRepository).Assembly);
     _sessionFactory = configuration.BuildSessionFactory();
     var upgradeManager = new DatabaseManager(_database.ConnectionString);
     upgradeManager.PerformUpgrade();
 }
コード例 #31
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TestableDatabase"/> class.
 /// </summary>
 public TestableDatabase()
 {
     _database = new TemporarySqlDatabase();
     var configuration = new Configuration();
     configuration.SetInterceptor(new PostSaveInterceptor());
     configuration.SetProperty("connection.provider", "NHibernate.Connection.DriverConnectionProvider");
     configuration.SetProperty("connection.driver_class", "NHibernate.Driver.SqlClientDriver");
     configuration.SetProperty("connection.connection_string", _database.ConnectionString);
     configuration.SetProperty("dialect", "NHibernate.Dialect.MsSql2005Dialect");
     configuration.SetProperty("show_sql", "true");
     configuration.AddMappingsFromAssembly(Cms.Domain.Properties.AssemblyReference.Assembly);
     _sessionFactory = configuration.BuildSessionFactory();
     var upgradeManager = new ApplicationDatabase(_database.ConnectionString);
     upgradeManager.PerformUpgrade();
 }
コード例 #32
0
 /// <summary>Adds properties to NHibernate configuration.</summary>
 /// <param name="cfg"></param>
 protected virtual void AddProperties(NHibernate.Cfg.Configuration cfg)
 {
     foreach (KeyValuePair <string, string> pair in Properties)
     {
         cfg.SetProperty(pair.Key, pair.Value);
     }
 }
コード例 #33
0
        public NHibernate.Cfg.Configuration BuildConfiguration(string connectionString, bool debug = false)
        {
            var configuration = new NHibernate.Cfg.Configuration();

            configuration.SetProperty(Environment.ShowSql, "false");
            //configure NH to use ISet from .NET instead of from Iesi.Collections
            //configuration.SetProperty(Environment.CollectionTypeFactoryClass, typeof (Net4CollectionTypeFactory).AssemblyQualifiedName);

            var builder = Fluently
                          .Configure(configuration)
                          .ProxyFactoryFactory <DefaultProxyFactoryFactory>()
                          .Database(MsSqlConfiguration.MsSql2008.ConnectionString(connectionString)
                                    //.ShowSql()
                                    //.FormatSql()
                                    .Dialect <MsSql2008Dialect>()
                                    )
                          .ExposeConfiguration(c =>
            {
                c.SetProperty(Environment.BatchSize, BatchSize.ToString(CultureInfo.InvariantCulture));
                c.SetProperty("hbm2ddl.keywords", "auto-quote");

                if (debug)
                {
                    c.SetProperty(Environment.ShowSql, "true");
                    c.SetProperty(Environment.FormatSql, "true");
                    c.SetProperty("LogSqlInConsole", "true");
                }
                else
                {
                    c.SetProperty(Environment.ShowSql, "false");
                    c.SetProperty(Environment.FormatSql, "false");
                    c.SetProperty("LogSqlInConsole", "false");
                }
                c.SetProperty("nhibernate-logger", typeof(NLogFactory).AssemblyQualifiedName);
            })
                          .Mappings(m =>
            {
                var model = AutoMap.Assemblies(new AppAutomappingCfg(), _assemblies);
                m.AutoMappings.Add(model);
            })
            ;

            if (debug)
            {
                builder = builder.ExposeConfiguration(cfg =>
                {
                    const string schemaPath = @"c:\temp\nh_mappings_export\schema.sql";
                    using (var file = File.Open(schemaPath, FileMode.CreateNew))
                        using (var writer = new StreamWriter(file))
                        {
                            var se = new SchemaExport(cfg);
                            se.Create(writer, false);
                        }
                });
            }
            _config = builder
                      .BuildConfiguration();

            return(_config);
        }
コード例 #34
0
		protected override void Configure(Configuration configuration)
		{
			if (Dialect is MsSql2005Dialect)
				configuration.SetProperty(Environment.Dialect, typeof(CustomDialect).AssemblyQualifiedName);
			else
				appliesToThisDialect = false;
		}
コード例 #35
0
        static NHSession()
        {
            NHibernate.Cfg.Configuration config = new NHibernate.Cfg.Configuration().Configure();

            config.SetProperty("connection.connection_string", ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);

            sessionfactory = config.BuildSessionFactory();
        }
コード例 #36
0
        /// <summary>Adds properties to NHibernate configuration.</summary>
        /// <param name="cfg"></param>
        protected virtual void AddProperties(NHibernate.Cfg.Configuration cfg)
        {
            cfg.LinqToHqlGeneratorsRegistry <WhereDetailHqlGeneratorRegistry>();

            foreach (KeyValuePair <string, string> pair in Properties)
            {
                cfg.SetProperty(pair.Key, pair.Value);
            }
        }
コード例 #37
0
    static async Task AsyncMain()
    {
        Console.Title = "Samples.SQLNHibernateOutboxEF.Receiver";

        var connectionString = @"Data Source=.\SqlExpress;Database=nservicebus;Integrated Security=True";
        var startupSql       = File.ReadAllText("Startup.sql");

        await SqlHelper.ExecuteSql(connectionString, startupSql)
        .ConfigureAwait(false);

        var hibernateConfig = new Configuration();

        hibernateConfig.DataBaseIntegration(x =>
        {
            x.ConnectionStringName = "NServiceBus/Persistence";
            x.Dialect <MsSql2012Dialect>();
        });

        hibernateConfig.SetProperty("default_schema", "receiver");

        var endpointConfiguration = new EndpointConfiguration("Samples.SQLNHibernateOutboxEF.Receiver");

        endpointConfiguration.UseSerialization <JsonSerializer>();
        endpointConfiguration.EnableInstallers();
        endpointConfiguration.SendFailedMessagesTo("error");

        #region ReceiverConfiguration

        var transport = endpointConfiguration.UseTransport <SqlServerTransport>();

        var routing = transport.Routing();
        routing.RouteToEndpoint(typeof(OrderAccepted).Assembly, "Samples.SQLNHibernateOutboxEF.Sender");
        routing.RegisterPublisher(typeof(OrderAccepted).Assembly, "Samples.SQLNHibernateOutboxEF.Sender");

        transport.DefaultSchema("receiver");

        transport.UseSchemaForEndpoint("Samples.SQLNHibernateOutboxEF.Sender", "sender");
        transport.UseSchemaForQueue("error", "dbo");
        transport.UseSchemaForQueue("audit", "dbo");

        endpointConfiguration
        .UsePersistence <NHibernatePersistence>();

        endpointConfiguration.EnableOutbox();

        #endregion

        var endpointInstance = await Endpoint.Start(endpointConfiguration)
                               .ConfigureAwait(false);

        Console.WriteLine("Press any key to exit");
        Console.ReadKey();
        await endpointInstance.Stop()
        .ConfigureAwait(false);
    }
コード例 #38
0
    public static ISession GetSession()
    {
        try
        {
            if (_sessionFactory == null)
            {
                lock (typeof(NHibernateHelper))
                {
                    if (_sessionFactory == null)
                    {
                        Configuration cfg = new Configuration();

                        string connectionString = "Server=GMEPN000749\\SQLSERVER;Database=TESTE;Trusted_Connection=True;";

                        NHibernate.Cfg.Configuration nHibernateConfiguration = new NHibernate.Cfg.Configuration();

                        nHibernateConfiguration.SetProperty(NHibernate.Cfg.Environment.ProxyFactoryFactoryClass, typeof(NHibernate.ByteCode.Castle.ProxyFactoryFactory).AssemblyQualifiedName);
                        nHibernateConfiguration.SetProperty(NHibernate.Cfg.Environment.Dialect, typeof(NHibernate.Dialect.MsSql2008Dialect).AssemblyQualifiedName);
                        nHibernateConfiguration.SetProperty(NHibernate.Cfg.Environment.ConnectionString, connectionString);
                        nHibernateConfiguration.SetProperty(NHibernate.Cfg.Environment.ShowSql, "true");
                        nHibernateConfiguration.AddAssembly("MapeamentoOR");
                        //objProperties.Add("proxyfactory.factory_class", "NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle");
                        ISessionFactory oneISessionFactory = nHibernateConfiguration
                                                             .BuildSessionFactory();



                        //cfg.AddProperties("")
                        //cfg.AddAssembly("MapeamentoOR");
                        //_sessionFactory = cfg.BuildSessionFactory();
                        return(oneISessionFactory.OpenSession());
                    }
                }
            }
        }
        catch (Exception e) {
        }

        return(null);
    }
コード例 #39
0
    static void Main()
    {
        SqlHelper.CreateDatabase(ConfigurationManager.ConnectionStrings["NServiceBus/Persistence"].ConnectionString);
        Configuration nhConfiguration = new Configuration();

        nhConfiguration.SetProperty(Environment.ConnectionProvider, "NHibernate.Connection.DriverConnectionProvider");
        nhConfiguration.SetProperty(Environment.ConnectionDriver, "NHibernate.Driver.Sql2008ClientDriver");
        nhConfiguration.SetProperty(Environment.Dialect, "NHibernate.Dialect.MsSql2008Dialect");
        nhConfiguration.SetProperty(Environment.ConnectionStringName, "NServiceBus/Persistence");

        BusConfiguration busConfiguration = new BusConfiguration();

        busConfiguration.EndpointName("Samples.CustomNhMappings.Default");
        busConfiguration.UseSerialization <JsonSerializer>();
        busConfiguration.EnableInstallers();
        //busConfiguration.Transactions().DisableDistributedTransactions();

        busConfiguration
        .UsePersistence <NHibernatePersistence>()
        .UseConfiguration(nhConfiguration);

        using (IBus bus = Bus.Create(busConfiguration).Start())
        {
            Parallel.For(0, 1000, i =>
            {
                bus.SendLocal(new StartOrder
                {
                    OrderId = "123"
                });
                bus.SendLocal(new CompleteOrder
                {
                    OrderId = "123"
                });
            });

            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
    }
コード例 #40
0
        static async Task AsyncMain1()
        {
            Console.Title = "Samples.PubSub.Publisher";
            var endpointConfiguration = new EndpointConfiguration("Samples.PubSub.Publisher");
            //endpointConfiguration.UsePersistence<LearningPersistence>();
            //endpointConfiguration.UseTransport<LearningTransport>();

            //Persistence
            var persistence = endpointConfiguration.UsePersistence <NHibernatePersistence>();
            var nhConfig    = new NHibernate.Cfg.Configuration();

            nhConfig.SetProperty(NHibernate.Cfg.Environment.ConnectionProvider, "NHibernate.Connection.DriverConnectionProvider");
            nhConfig.SetProperty(NHibernate.Cfg.Environment.ConnectionDriver, "NHibernate.Driver.Sql2008ClientDriver");
            nhConfig.SetProperty(NHibernate.Cfg.Environment.Dialect, "NHibernate.Dialect.MsSql2008Dialect");
            nhConfig.SetProperty(NHibernate.Cfg.Environment.ConnectionString, ConfigurationManager.ConnectionStrings["NSB_AWS.NHibernatePersistence"].ConnectionString);
            nhConfig.SetProperty(NHibernate.Cfg.Environment.DefaultSchema, "nsb");
            persistence.UseConfiguration(nhConfig);
            //Transport
            var transport = endpointConfiguration.UseTransport <SqlServerTransport>()
                            .ConnectionString(ConfigurationManager.ConnectionStrings["NSB_AWS.SqlServerTransport"].ConnectionString);

            transport.DefaultSchema("nsb");

            var routing = transport.Routing();

            routing.RegisterPublisher(typeof(OrderPlaced), "Samples.PubSub.Publisher");

            endpointConfiguration.SendFailedMessagesTo("error");
            endpointConfiguration.EnableInstallers();

            var endpointInstance = await Endpoint.Start(endpointConfiguration)
                                   .ConfigureAwait(false);

            await Start(endpointInstance)
            .ConfigureAwait(false);

            await endpointInstance.Stop()
            .ConfigureAwait(false);
        }
コード例 #41
0
        protected SessionFactoryProvider(IConfiguration configuration, string nick, IInterceptor interceptor)
        {
            connectionInfo = configuration.GetSection("db")
                             .Get <ConnectionInfo[]>()
                             .SingleOrDefault(ci => ci.Nick == nick && ci.DbServerType == ServerType);
            if (connectionInfo == null)
            {
                throw new InvalidOperationException($"Connection with name {nick} is not found");
            }

            nhConfig = new NhConfiguration();
            nhConfig.CurrentSessionContext <ThreadLocalSessionContext>();
            nhConfig.SetProperty(Environment.SessionFactoryName, nick);
            nhConfig.Interceptor = interceptor ?? new EmptyInterceptor();
            nhConfig.SetProperty(Environment.UseSecondLevelCache, "false");
            Logger.LogDebug("NHibernate configuration: " + $"DbNick: {nhConfig.GetProperty(Environment.SessionFactoryName)}, "
                            + $"UseSecondLevelCache: {nhConfig.GetProperty(Environment.UseSecondLevelCache)}, "
                            + $"CacheDefaultExpiration: {nhConfig.GetProperty(Environment.CacheDefaultExpiration)}");

            Nick = nick;
            IsSkipHealthCheckEntity = connectionInfo.IsSkipHealthCheckEntity;
        }
コード例 #42
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="properties"></param>
        /// <param name="resources"></param>
        public void Configure(NameValueCollection properties, IDictionary resources)
        {
            string mapping = string.Empty;

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

                // Set the connection string retrieve on the datasource
                config.SetProperty(CONNECTION_STRING, (resources["DataSource"] as DataSource).ConnectionString);

                foreach (DictionaryEntry entry in resources)
                {
                    if ((entry.Key.ToString()).StartsWith("class."))
                    {
                        config.AddClass(Resources.TypeForName(entry.Value.ToString()));
                    }
                    if ((entry.Key.ToString()) == "mapping")
                    {
                        mapping = entry.Value.ToString();
                    }

                    config.SetProperty(entry.Key.ToString(), entry.Value.ToString());
                }

                if (mapping.Length > 0)
                {
                    config.AddAssembly(mapping);
                }
                _factory = config.BuildSessionFactory();
            }
            catch (Exception e)
            {
                throw new ConfigurationException(string.Format("DaoManager could not configure NHibernateDaoSessionHandler. Cause: {0}", e.Message), e);
            }
        }
コード例 #43
0
        public static ISessionFactory GetSessionFactory()
        {
            var configuration = new NHibernate.Cfg.Configuration();

            configuration.Configure();
            configuration.AddAssembly(typeof(SessionFactoryFactory).Assembly.GetName().Name);

            configuration.SetProperty(Environment.ConnectionString,
                                      ConfigurationManager.ConnectionStrings["ProjectTemplate"].ConnectionString);

            log4net.Config.XmlConfigurator.Configure();
            var sessionFactory = configuration.BuildSessionFactory();

            return(sessionFactory);
        }
コード例 #44
0
    static void Main()
    {
        Console.Title = "Samples.SQLNHibernateOutboxEF.Receiver";

        var connectionString = @"Data Source=.\SqlExpress;Database=nservicebus;Integrated Security=True";
        var startupSql       = File.ReadAllText("Startup.sql");

        SqlHelper.ExecuteSql(connectionString, startupSql);

        var hibernateConfig = new Configuration();

        hibernateConfig.DataBaseIntegration(
            dataBaseIntegration: configurationProperties =>
        {
            configurationProperties.ConnectionStringName = "NServiceBus/Persistence";
            configurationProperties.Dialect <MsSql2012Dialect>();
        });

        hibernateConfig.SetProperty("default_schema", "receiver");

        var busConfiguration = new BusConfiguration();

        busConfiguration.UseSerialization <JsonSerializer>();
        busConfiguration.EndpointName("Samples.SQLNHibernateOutboxEF.Receiver");

        #region ReceiverConfiguration

        var transport      = busConfiguration.UseTransport <SqlServerTransport>();
        var connectionInfo = EndpointConnectionInfo.For("Samples.SQLNHibernateOutboxEF.Sender")
                             .UseSchema("sender");
        transport.UseSpecificConnectionInformation(connectionInfo);
        transport.DefaultSchema("receiver");

        var persistence = busConfiguration.UsePersistence <NHibernatePersistence>();
        persistence.RegisterManagedSessionInTheContainer();

        busConfiguration.EnableOutbox();

        #endregion

        using (Bus.Create(busConfiguration).Start())
        {
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
    }
コード例 #45
0
        public static void ResetSessionFactory()
        {
            Configuration config;
            HttpContext   currentContext = HttpContext.Current;
            cAppConfig    oApp           = new cAppConfig(ConfigFileType.AppConfig);

            config = new NHibernate.Cfg.Configuration();

            config.SetProperty("hibernate.connection.connection_string", oApp.GetValue("hibernate.connection.connection_string"));
            config.AddAssembly("Business");

            NHibernateHttpModule.m_factory = config.BuildSessionFactory();
            NHibernateHttpModule.m_session = NHibernateHttpModule.m_factory.OpenSession();

            if (NHibernateHttpModule.m_factory == null)
            {
                throw new InvalidOperationException("Call to Configuration.BuildSessionFactory() returned null.");
            }
        }
        private static void OptimizePerformance(NHConfig.Configuration configuration)
        {
            configuration
            .SetProperty(NHConfig.Environment.FormatSql, bool.FalseString)
            .SetProperty(NHConfig.Environment.GenerateStatistics, bool.FalseString)
            .SetProperty(NHConfig.Environment.Hbm2ddlKeyWords, Hbm2DDLKeyWords.None.ToString())
            .SetProperty(NHConfig.Environment.PrepareSql, bool.TrueString)
            .SetProperty(NHConfig.Environment.PropertyBytecodeProvider, BytecodeProviderType.Lcg.ToString())
            .SetProperty(NHConfig.Environment.PropertyUseReflectionOptimizer, bool.TrueString)
            .SetProperty(NHConfig.Environment.QueryStartupChecking, bool.FalseString)
            .SetProperty(NHConfig.Environment.ShowSql, bool.TrueString)
            .SetProperty(NHConfig.Environment.UseProxyValidator, bool.FalseString)
            .SetProperty(NHConfig.Environment.UseSecondLevelCache, bool.FalseString)
            .SetProperty(NHConfig.Environment.UseSqlComments, bool.FalseString)
            .SetProperty(NHConfig.Environment.UseQueryCache, bool.FalseString)
            .SetProperty(NHConfig.Environment.WrapResultSets, bool.TrueString);

            // remove support for pre & post load event listeners to improve performance
            configuration.EventListeners.PostLoadEventListeners = new IPostLoadEventListener[0];
            configuration.EventListeners.PreLoadEventListeners  = new IPreLoadEventListener[0];
        }
        private static NHConfig.Configuration BuildConfiguration()
        {
            var configuration = new NHConfig.Configuration();

            configuration
            .SetProperty(NHConfig.Environment.ConnectionDriver, typeof(SQLite20Driver).AssemblyQualifiedName)
            .SetProperty(NHConfig.Environment.Dialect, typeof(SQLiteDialect).AssemblyQualifiedName)
            .SetProperty(NHConfig.Environment.QuerySubstitutions, QuerySubstitutions)
            .SetProperty(NHConfig.Environment.CurrentSessionContextClass, typeof(ThreadStaticSessionContext).AssemblyQualifiedName)
            .SetProperty(NHConfig.Environment.ProxyFactoryFactoryClass, typeof(DefaultProxyFactoryFactory).AssemblyQualifiedName)
            .SetProperty(NHConfig.Environment.Isolation, IsolationLevel.ReadCommitted.ToString())
            .SetProperty(NHConfig.Environment.ConnectionString, InMemoryConnectionString);

            var mappings = BuildMappings();

            configuration.AddMapping(mappings);

            OptimizePerformance(configuration);

            return(configuration);
        }
コード例 #48
0
        public NHibernate.Cfg.Configuration Configure()
        {
            var config = new NHibernate.Cfg.Configuration();

            config.SetProperty(Environment.ReleaseConnections, "on_close")
            .SetProperty(Environment.Dialect, typeof(NHibernate.Spatial.Dialect.MsSql2008GeographyDialect).AssemblyQualifiedName)
            .SetProperty(Environment.ConnectionDriver, typeof(NHibernate.Driver.SqlClientDriver).AssemblyQualifiedName);

            var modelMapper = new ModelMapper(new ModelInspector());

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

            var mapping = modelMapper.CompileMappingForAllExplicitlyAddedEntities();

            config.AddMapping(mapping);

            config.SetListener(NHibernate.Event.ListenerType.PostUpdate, new FullTextIndexEventListener());
            config.SetListener(NHibernate.Event.ListenerType.PostInsert, new FullTextIndexEventListener());
            config.SetListener(NHibernate.Event.ListenerType.PostDelete, new FullTextIndexEventListener());

            return(config);
        }
コード例 #49
0
ファイル: NHibernateRegistry.cs プロジェクト: syurov/rt.srz
        /// <summary>
        ///   Initializes a new instance of the <see cref="NHibernateRegistry" /> class.
        ///   Конструктор
        /// </summary>
        public NHibernateRegistry()
        {
            var configuration = new Configuration();

            configuration.Configure();
            var defaultConnectionString = ConfigurationManager.ConnectionStrings["default"];

            configuration.SetProperty(Environment.ConnectionString, defaultConnectionString.ConnectionString);
            configuration.CurrentSessionContext <SmartSessionContext>();
            var sessionFactory = configuration.BuildSessionFactory();

            ForSingletonOf <ISessionFactory>().Use(sessionFactory);

            var manager = new ManagerSessionFactorys();

            manager.SetDefaultFactory(sessionFactory);
            if (ConfigManager.PoolNhibernateSection != null)
            {
                foreach (var file in ConfigManager.PoolNhibernateSection.FileNameConfigaration.Cast <FileNameElement>())
                {
                    configuration = new Configuration();
                    var filename = file.FileNameConfiguration;
                    if (!File.Exists(file.FileNameConfiguration))
                    {
                        filename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, file.FileNameConfiguration);
                    }

                    configuration.Configure(filename);
                    var connectionString = ConfigurationManager.ConnectionStrings[file.FileNameConfiguration];
                    configuration.SetProperty(Environment.ConnectionString, connectionString.ConnectionString);
                    configuration.CurrentSessionContext <SmartSessionContext>();
                    sessionFactory = configuration.BuildSessionFactory();
                    manager.AddSessionFactory(file.FileNameConfiguration, sessionFactory);
                }
            }

            ForSingletonOf <IManagerSessionFactorys>().Use(manager);
        }
コード例 #50
0
        static void Main(string[] args)
        {
            var hibernateConfig = new Configuration();

            hibernateConfig.DataBaseIntegration(x =>
            {
                x.ConnectionStringName = "NServiceBus/Persistence";
                x.Dialect <MsSql2012Dialect>();
            });
            #region NHibernate
            hibernateConfig.SetProperty("default_schema", "receiver");
            #endregion

            var mapper = new ModelMapper();
            mapper.AddMapping <OrderMap>();
            hibernateConfig.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());

            new SchemaExport(hibernateConfig).Execute(false, true, false);

            #region ReceiverConfiguration

            var busConfig = new BusConfiguration();
            busConfig.UseTransport <SqlServerTransport>().DefaultSchema("receiver")
            .UseSpecificConnectionInformation(endpoint =>
            {
                var schema = endpoint.Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries)[0].ToLowerInvariant();
                return(ConnectionInfo.Create().UseSchema(schema));
            });
            busConfig.UsePersistence <NHibernatePersistence>().UseConfiguration(hibernateConfig);
            #endregion

            using (Bus.Create(busConfig).Start())
            {
                Console.WriteLine("Press <enter> to exit");
                Console.ReadLine();
            }
        }
コード例 #51
0
 public static Configuration LinqToHqlGeneratorsRegistry <TLinqToHqlGeneratorsRegistry>(this Configuration configuration) where TLinqToHqlGeneratorsRegistry : ILinqToHqlGeneratorsRegistry
 {
     configuration.SetProperty(Environment.LinqToHqlGeneratorsRegistry, typeof(TLinqToHqlGeneratorsRegistry).AssemblyQualifiedName);
     return(configuration);
 }
コード例 #52
0
        /// <summary>
        /// Initialize the SessionFactory for the given or the
        /// default location.
        /// </summary>
        public virtual void AfterPropertiesSet()
        {
            // Create Configuration instance.
            Configuration config = NewConfiguration();

            if (this.dbProvider != null)
            {
                config.SetProperty(Environment.ConnectionString, dbProvider.ConnectionString);
                config.SetProperty(Environment.ConnectionProvider, typeof(DbProviderWrapper).AssemblyQualifiedName);
                configTimeDbProvider = this.dbProvider;
            }

            if (ExposeTransactionAwareSessionFactory)
            {
                // Set ICurrentSessionContext implementation,
                // providing the Spring-managed ISession s current Session.
                // Can be overridden by a custom value for the corresponding Hibernate property
                config.SetProperty(Environment.CurrentSessionContextClass, typeof(SpringSessionContext).AssemblyQualifiedName);
            }

            if (this.entityInterceptor != null)
            {
                // Set given entity interceptor at SessionFactory level.
                config.SetInterceptor(this.entityInterceptor);
            }

            if (this.namingStrategy != null)
            {
                // Pass given naming strategy to Hibernate Configuration.
                config.SetNamingStrategy(this.namingStrategy);
            }

#if NH_2_1
            if (this.typeDefinitions != null)
            {
                // Register specified Hibernate type definitions.
                IDictionary <string, string> typedProperties = new  Dictionary <string, string>();
                foreach (DictionaryEntry entry in hibernateProperties)
                {
                    typedProperties.Add((string)entry.Key, (string)entry.Value);
                }

                Dialect  dialect  = Dialect.GetDialect(typedProperties);
                Mappings mappings = config.CreateMappings(dialect);
                for (int i = 0; i < this.typeDefinitions.Length; i++)
                {
                    IObjectDefinition           typeDef       = this.typeDefinitions[i];
                    Dictionary <string, string> typedParamMap = new Dictionary <string, string>();
                    foreach (DictionaryEntry entry in typeDef.PropertyValues)
                    {
                        typedParamMap.Add((string)entry.Key, (string)entry.Value);
                    }
                    mappings.AddTypeDef(typeDef.ObjectTypeName, typeDef.ObjectTypeName, typedParamMap);
                }
            }
#endif

            if (this.filterDefinitions != null)
            {
                // Register specified NHibernate FilterDefinitions.
                for (int i = 0; i < this.filterDefinitions.Length; i++)
                {
                    config.AddFilterDefinition(this.filterDefinitions[i]);
                }
            }

#if NH_2_1
            // check whether proxy factory has been initialized
            if (config.GetProperty(Environment.ProxyFactoryFactoryClass) == null &&
                (hibernateProperties == null || !hibernateProperties.Contains(Environment.ProxyFactoryFactoryClass)))
            {
                // nothing set by user, lets use Spring.NET's proxy factory factory
                #region Logging
                if (log.IsInfoEnabled)
                {
                    log.Info("Setting proxy factory to Spring provided one as user did not specify any");
                }
                #endregion
                config.Properties.Add(
                    Environment.ProxyFactoryFactoryClass, typeof(Bytecode.ProxyFactoryFactory).AssemblyQualifiedName);
            }
#endif

            if (this.hibernateProperties != null)
            {
                if (config.GetProperty(Environment.ConnectionProvider) != null &&
                    hibernateProperties.Contains(Environment.ConnectionProvider))
                {
                    #region Logging
                    if (log.IsInfoEnabled)
                    {
                        log.Info("Overriding use of Spring's Hibernate Connection Provider with [" +
                                 hibernateProperties[Environment.ConnectionProvider] + "]");
                    }
                    #endregion
                    config.Properties.Remove(Environment.ConnectionProvider);
                }

                Dictionary <string, string> genericHibernateProperties = new Dictionary <string, string>();
                foreach (DictionaryEntry entry in hibernateProperties)
                {
                    genericHibernateProperties.Add((string)entry.Key, (string)entry.Value);
                }
                config.AddProperties(genericHibernateProperties);
            }
            if (this.mappingAssemblies != null)
            {
                foreach (string assemblyName in mappingAssemblies)
                {
                    config.AddAssembly(assemblyName);
                }
            }

            if (this.mappingResources != null)
            {
                IResourceLoader loader = this.ResourceLoader;
                if (loader == null)
                {
                    loader = this.applicationContext;
                }
                foreach (string resourceName in mappingResources)
                {
                    config.AddInputStream(loader.GetResource(resourceName).InputStream);
                }
            }

            if (configFilenames != null)
            {
                foreach (string configFilename in configFilenames)
                {
                    config.Configure(configFilename);
                }
            }

#if NH_2_1
            // Tell Hibernate to eagerly compile the mappings that we registered,
            // for availability of the mapping information in further processing.
            PostProcessMappings(config);
            config.BuildMappings();

            if (this.entityCacheStrategies != null)
            {
                // Register cache strategies for mapped entities.
                foreach (string className in this.entityCacheStrategies.Keys)
                {
                    String[] strategyAndRegion = StringUtils.CommaDelimitedListToStringArray(this.entityCacheStrategies.GetProperty(className));
                    if (strategyAndRegion.Length > 1)
                    {
                        config.SetCacheConcurrencyStrategy(className, strategyAndRegion[0], strategyAndRegion[1]);
                    }
                    else if (strategyAndRegion.Length > 0)
                    {
                        config.SetCacheConcurrencyStrategy(className, strategyAndRegion[0]);
                    }
                }
            }

            if (this.collectionCacheStrategies != null)
            {
                // Register cache strategies for mapped collections.
                foreach (string collRole in collectionCacheStrategies.Keys)
                {
                    string[] strategyAndRegion = StringUtils.CommaDelimitedListToStringArray(this.collectionCacheStrategies.GetProperty(collRole));
                    if (strategyAndRegion.Length > 1)
                    {
                        throw new Exception("Collection cache concurrency strategy region definition not supported yet");
                        //config.SetCollectionCacheConcurrencyStrategy(collRole, strategyAndRegion[0], strategyAndRegion[1]);
                    }
                    else if (strategyAndRegion.Length > 0)
                    {
                        config.SetCollectionCacheConcurrencyStrategy(collRole, strategyAndRegion[0]);
                    }
                }
            }
#endif

            if (this.eventListeners != null)
            {
                // Register specified NHibernate event listeners.
                foreach (DictionaryEntry entry in eventListeners)
                {
                    ListenerType listenerType;
                    try
                    {
                        listenerType = (ListenerType)Enum.Parse(typeof(ListenerType), (string)entry.Key);
                    }
                    catch
                    {
                        throw new ArgumentException(string.Format("Unable to parse string '{0}' as valid {1}", entry.Key, typeof(ListenerType)));
                    }

                    object listenerObject = entry.Value;
                    if (listenerObject is ICollection)
                    {
                        ICollection    listeners        = (ICollection)listenerObject;
                        EventListeners listenerRegistry = config.EventListeners;

                        // create the array and check that types are valid at the same time
                        ArrayList items         = new ArrayList(listeners);
                        object[]  listenerArray = (object[])items.ToArray(listenerRegistry.GetListenerClassFor(listenerType));
                        config.SetListeners(listenerType, listenerArray);
                    }
                    else
                    {
                        config.SetListener(listenerType, listenerObject);
                    }
                }
            }

            // Perform custom post-processing in subclasses.
            PostProcessConfiguration(config);

#if NH_2_1
            if (BytecodeProvider != null)
            {
                // set custom IBytecodeProvider
                Environment.BytecodeProvider = BytecodeProvider;
            }
            else
            {
                // use Spring's as default
                // Environment.BytecodeProvider = new Bytecode.BytecodeProvider(this.applicationContext);
            }
#endif

            // Build SessionFactory instance.
            log.Info("Building new Hibernate SessionFactory");
            this.configuration  = config;
            this.sessionFactory = NewSessionFactory(config);

            AfterSessionFactoryCreation();

            // set config time DB provider back to null
            configTimeDbProvider = null;
        }
コード例 #53
0
ファイル: Fixture.cs プロジェクト: jrauber/GH1429
 protected override void Configure(NHibernate.Cfg.Configuration configuration)
 {
     configuration.SetProperty(Environment.FormatSql, "false");
 }
コード例 #54
0
        public virtual EndpointConfiguration BuildConfig()
        {
            GCSettings.LatencyMode = GCLatencyMode.Batch; // https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/latency
            ServicePointManager.Expect100Continue      = false;
            ServicePointManager.UseNagleAlgorithm      = false;
            ServicePointManager.DefaultConnectionLimit = 125; // Querying of DefaultConnectionLimit on dotnet core does not return assigned value
            //logger
            ConfigureNsbLogger();

            //endpoint name
            if (string.IsNullOrEmpty(_configEndpointName))
            {
                throw new ArgumentNullException(_configEndpointName, "Endpoint name cannot be null");
            }

            var endpointConfiguration = new EndpointConfiguration(_configEndpointName);

            endpointConfiguration.LimitMessageProcessingConcurrencyTo(Environment.ProcessorCount * 4);

            if (_isSendOnly)
            {
                endpointConfiguration.SendOnly();
            }

            //Transport
            var transportType = TransportType.Sqs;

            //serializer
            endpointConfiguration.UseSerialization <XmlSerializer>();

            var connectionString = "Server=.;Initial Catalog=support/20180629;Integrated Security=True";
            var persistence      = endpointConfiguration.UsePersistence <NHibernatePersistence>();
            var nhConfig         = new NHibernate.Cfg.Configuration();

            nhConfig.SetProperty(NHibernate.Cfg.Environment.ConnectionProvider, typeof(NHibernate.Connection.DriverConnectionProvider).FullName);
            nhConfig.SetProperty(NHibernate.Cfg.Environment.ConnectionDriver, typeof(NHibernate.Driver.Sql2008ClientDriver).FullName);
            nhConfig.SetProperty(NHibernate.Cfg.Environment.Dialect, typeof(NHibernate.Dialect.MsSql2012Dialect).FullName);
            nhConfig.SetProperty(NHibernate.Cfg.Environment.ConnectionString, connectionString);
            nhConfig.SetProperty(NHibernate.Cfg.Environment.DefaultSchema, "dbo");

            persistence.UseConfiguration(nhConfig);
            persistence.EnableCachingForSubscriptionStorage(TimeSpan.FromSeconds(10));

            endpointConfiguration.SendFailedMessagesTo("error");
            //endpointConfiguration.AuditProcessedMessagesTo("audit");
            //endpointConfiguration.EnableOutbox();

            switch (transportType)
            {
            case TransportType.Sql:
            {
                var transport = endpointConfiguration.UseTransport <SqlServerTransport>();
                transport.ConnectionString(connectionString);
                transport.DefaultSchema("dbo");
                transport.Transactions(TransportTransactionMode.ReceiveOnly);
                BuildEndpointSQLRouting(transport.Routing());
                break;
            }

            case TransportType.Sqs:
            {
                var region       = RegionEndpoint.EUWest1;
                var S3BucketName = "ramon-sqs";
                var S3KeyPrefix  = "support/20180629";


                var transport = endpointConfiguration.UseTransport <SqsTransport>();
                transport.ClientFactory(() => new AmazonSQSClient(
                                            new AmazonSQSConfig
                    {
                        RegionEndpoint = region,
                        MaxErrorRetry  = 2,
                    }));

                var s3Configuration = transport.S3(S3BucketName, S3KeyPrefix);
                s3Configuration.ClientFactory(() => new AmazonS3Client(
                                                  new AmazonS3Config
                    {
                        RegionEndpoint = region
                    }));

                //Routing
                BuildEndpointSQSRouting(transport.Routing());
                transport.QueueNamePrefix("ramon-support-20180629-");
                break;
            }

            case TransportType.Learning:
            {
                endpointConfiguration.UsePersistence <LearningPersistence>();
                var transport = endpointConfiguration.UseTransport <LearningTransport>();
                endpointConfiguration.DisableFeature <TimeoutManager>();        // REVIEW: Why are you disabling the timeout manager??
                BuildEndpointLearningRouting(transport.Routing());
                break;
            }

            default:
                throw new Exception("Unexpected Case");
            }


            //Auto installer
            //#if DEBUG
            endpointConfiguration.EnableInstallers();
            //#else
            //           endpointConfiguration.DisableInstallers();
            //#endif


            var performanceCounters = endpointConfiguration.EnableWindowsPerformanceCounters();

            performanceCounters.EnableSLAPerformanceCounters(TimeSpan.FromSeconds(100));


            return(endpointConfiguration);
        }
コード例 #55
0
 protected override void Configure(NHCfg.Configuration configuration)
 {
     configuration.SetProperty(NHCfg.Environment.UseSecondLevelCache, "true");
     configuration.SetProperty(NHCfg.Environment.GenerateStatistics, "true");
 }
コード例 #56
0
        /// <summary>
        /// Main NHibernate configuration method.
        /// It configures NHibernate in an opinionated way, with an option to override various small NHibernate settings by overriding
        /// other virtual methods.
        /// This method can be overridden to completely customize NHibernate configuration.
        /// </summary>
        /// <param name="shouldMapDtos">See the constructor</param>
        /// <param name="configurationFileName">See the constructor</param>
        /// <param name="connectionString">See the constructor</param>
        /// <param name="sessionFactory">NHibernate session factory</param>
        /// <param name="configuration">NHibernate configuration</param>
        protected virtual void ConfigureNhibernate(
            bool shouldMapDtos,
            string configurationFileName,
            string connectionString,
            out ISessionFactory sessionFactory,
            out Configuration configuration
            )
        {
            configuration = new Configuration();
            if (string.IsNullOrWhiteSpace(configurationFileName))
            {
                configuration.Configure();
            }
            else
            {
                configuration.Configure(configurationFileName);
            }

            var assembliesToMap = GetAssembliesToMap();
            var isTypeDto       = GetIsTypeDtoFunc();

            var autoPersistenceModel = AutoMap.Assemblies(
                GetAutomappingConfiguration(shouldMapDtos, isTypeDto),
                assembliesToMap
                );

            GetIncludeBaseTypes().Each(x => autoPersistenceModel.IncludeBase(x));
            GetIgnoreBaseTypes().Each(x => autoPersistenceModel.IgnoreBase(x));
            assembliesToMap.Each(x => autoPersistenceModel.UseOverridesFromAssembly(x));

            _configureConventions();

            configuration.SetNamingStrategy(GetNamingStrategy());

            var fluentConfiguration = Fluently.Configure(configuration)
                                      .Mappings(x =>
            {
                var mappingsContainer            = x.AutoMappings.Add(autoPersistenceModel);
                var exportNhibernateMappingsPath = GetExportNhibernateMappingsPath();
                if (!string.IsNullOrWhiteSpace(exportNhibernateMappingsPath))
                {
                    mappingsContainer.ExportTo(exportNhibernateMappingsPath);
                }
            });

            if (!string.IsNullOrWhiteSpace(connectionString))
            {
                configuration.SetProperty(Environment.ConnectionString, connectionString);
            }

            AdditionalConfiguration(configuration);

            sessionFactory = fluentConfiguration.BuildSessionFactory();

            void _configureConventions()
            {
                if (ShouldUseDefaultConventions())
                {
                    DisableLazyLoadForDtosConvention.Initialize(isTypeDto);
                    HasManyConvention.Initialize(
                        GetCollectionCascadeInstanceAction(),
                        GetBackingFieldNameFromPropertyNameFunc(),
                        GetCollectionInstanceAccessAction()
                        );
                    PrimaryKeyConvention.Initialize(GetIdentityHiLoMaxLo());

                    var disabledConventions = GetDisabledConventions();
                    var conventionTypes     = Assembly.GetExecutingAssembly().GetTypes()
                                              .Where(type => typeof(IConvention).IsAssignableFrom(type) &&
                                                     !type.IsInterface &&
                                                     !disabledConventions.Contains(type))
                                              .ToList();

                    conventionTypes.Each(conventionType => autoPersistenceModel.Conventions.Add(conventionType));
                }

                GetAssembliesWithAdditionalConventions().Each(assembly => autoPersistenceModel.Conventions.AddAssembly(assembly));
                GetAdditionalConventions().Each(conventionType => autoPersistenceModel.Conventions.Add(conventionType));
            }
        }
コード例 #57
0
 public static Configuration CurrentSessionContext <TCurrentSessionContext>(this Configuration configuration) where TCurrentSessionContext : ICurrentSessionContext
 {
     configuration.SetProperty(Environment.CurrentSessionContextClass, typeof(TCurrentSessionContext).AssemblyQualifiedName);
     return(configuration);
 }
コード例 #58
0
 public static Configuration SessionFactoryName(this Configuration configuration, string sessionFactoryName)
 {
     configuration.SetProperty(Environment.SessionFactoryName, sessionFactoryName);
     return(configuration);
 }
コード例 #59
0
        /// <summary>
        /// Initialize the SessionFactory for the given or the
        /// default location.
        /// </summary>
        public virtual void AfterPropertiesSet()
        {
            // Create Configuration instance.
            Configuration config = NewConfiguration();

            if (this.dbProvider != null)
            {
                config.SetProperty(Environment.ConnectionString, dbProvider.ConnectionString);
                config.SetProperty(Environment.ConnectionProvider, typeof(DbProviderWrapper).AssemblyQualifiedName);
                configTimeDbProvider = this.dbProvider;
            }

            if (ExposeTransactionAwareSessionFactory)
            {
                // Set ICurrentSessionContext implementation,
                // providing the Spring-managed ISession s current Session.
                // Can be overridden by a custom value for the corresponding Hibernate property
                // config.SetProperty(Environment.CurrentSessionContextClass, typeof(SpringSessionContext).AssemblyQualifiedName);
                config.SetProperty(Environment.CurrentSessionContextClass, typeof(WcfOperationSessionContext).AssemblyQualifiedName);
            }

            if (this.entityInterceptor != null)
            {
                // Set given entity interceptor at SessionFactory level.
                config.SetInterceptor(this.entityInterceptor);
            }

            if (this.namingStrategy != null)
            {
                // Pass given naming strategy to Hibernate Configuration.
                config.SetNamingStrategy(this.namingStrategy);
            }



            if (this.filterDefinitions != null)
            {
                // Register specified NHibernate FilterDefinitions.
                for (int i = 0; i < this.filterDefinitions.Length; i++)
                {
                    config.AddFilterDefinition(this.filterDefinitions[i]);
                }
            }

            if (this.hibernateProperties != null)
            {
                if (config.GetProperty(Environment.ConnectionProvider) != null &&
                    hibernateProperties.Contains(Environment.ConnectionProvider))
                {
                    #region Logging
                    if (log.IsInfoEnabled)
                    {
                        log.Info("Overriding use of Spring's Hibernate Connection Provider with [" +
                                 hibernateProperties[Environment.ConnectionProvider] + "]");
                    }
                    #endregion
                    config.Properties.Remove(Environment.ConnectionProvider);
                }

                Dictionary <string, string> genericHibernateProperties = new Dictionary <string, string>();
                foreach (DictionaryEntry entry in hibernateProperties)
                {
                    genericHibernateProperties.Add((string)entry.Key, (string)entry.Value);
                }
                config.AddProperties(genericHibernateProperties);
            }
            if (this.mappingAssemblies != null)
            {
                foreach (string assemblyName in mappingAssemblies)
                {
                    config.AddAssembly(assemblyName);
                }
            }

            if (this.mappingResources != null)
            {
                IResourceLoader loader = this.ResourceLoader;
                if (loader == null)
                {
                    loader = this.applicationContext;
                }
                foreach (string resourceName in mappingResources)
                {
                    config.AddInputStream(loader.GetResource(resourceName).InputStream);
                }
            }

            if (configFilenames != null)
            {
                foreach (string configFilename in configFilenames)
                {
                    config.Configure(configFilename);
                }
            }

            if (this.eventListeners != null)
            {
                // Register specified NHibernate event listeners.
                foreach (DictionaryEntry entry in eventListeners)
                {
                    ListenerType listenerType;
                    try
                    {
                        listenerType = (ListenerType)Enum.Parse(typeof(ListenerType), (string)entry.Key);
                    }
                    catch
                    {
                        throw new ArgumentException(string.Format("Unable to parse string '{0}' as valid {1}", entry.Key, typeof(ListenerType)));
                    }

                    object listenerObject = entry.Value;
                    if (listenerObject is ICollection)
                    {
                        ICollection    listeners        = (ICollection)listenerObject;
                        EventListeners listenerRegistry = config.EventListeners;

                        // create the array and check that types are valid at the same time
                        ArrayList items         = new ArrayList(listeners);
                        object[]  listenerArray = (object[])items.ToArray(listenerRegistry.GetListenerClassFor(listenerType));
                        config.SetListeners(listenerType, listenerArray);
                    }
                    else
                    {
                        config.SetListener(listenerType, listenerObject);
                    }
                }
            }

            // Perform custom post-processing in subclasses.
            PostProcessConfiguration(config);

            // Build SessionFactory instance.
            log.Info("Building new Hibernate SessionFactory");
            this.configuration  = config;
            this.sessionFactory = NewSessionFactory(config);

            AfterSessionFactoryCreation();

            // set config time DB provider back to null
            configTimeDbProvider = null;
        }
コード例 #60
0
 public static Configuration LinqQueryProvider <TQueryProvider>(this Configuration configuration) where TQueryProvider : INhQueryProvider
 {
     configuration.SetProperty(Environment.QueryLinqProvider, typeof(TQueryProvider).AssemblyQualifiedName);
     return(configuration);
 }