public static string GetDialect(bool isSpatial, ArchAngel.Providers.EntityModel.Controller.DatabaseLayer.DatabaseTypes databaseType)
        {
            switch (databaseType)
            {
            case DatabaseTypes.MySQL:
                return(isSpatial ? "NHibernate.Spatial.Dialect.MySQLSpatialDialect,NHibernate.Spatial.MySQL" : "NHibernate.Dialect.MySQLDialect");

            case DatabaseTypes.SQLCE:
                return(isSpatial ? "NHibernate.Dialect.MsSqlCeDialect" : "NHibernate.Dialect.MsSqlCeDialect");

            case DatabaseTypes.SQLServer2005:
                return(isSpatial ? "NHibernate.Spatial.Dialect.MsSql2008SpatialDialect,NHibernate.Spatial.MsSql2008" : "NHibernate.Dialect.MsSql2005Dialect");

            case DatabaseTypes.SQLServerExpress:
                return(isSpatial ? "NHibernate.Dialect.MsSql2005Dialect" : "NHibernate.Dialect.MsSql2005Dialect");

            case DatabaseTypes.Oracle:
                return(isSpatial ? "NHibernate.Dialect.Oracle9Dialect" : "NHibernate.Dialect.Oracle9Dialect");

            case DatabaseTypes.PostgreSQL:
                return("NHibernate.Dialect.PostgreSQLDialect");

            case DatabaseTypes.Firebird:
                return("NHibernate.Dialect.FirebirdDialect");

            case DatabaseTypes.SQLite:
                return("NHibernate.Dialect.SQLiteDialect");

            case DatabaseTypes.Unknown:
                return("unknown");

            default:
                throw new NotImplementedException("Dialect not handled yet: " + databaseType.ToString());
            }
        }
        public static string GetDriver(ArchAngel.Providers.EntityModel.Controller.DatabaseLayer.DatabaseTypes databaseType)
        {
            switch (databaseType)
            {
            case DatabaseTypes.MySQL:
                return("NHibernate.Driver.MySqlDataDriver");

                break;

            case DatabaseTypes.SQLCE:
                return("NHibernate.Driver.SqlServerCeDriver");

                break;

            case DatabaseTypes.SQLServer2005:
            case DatabaseTypes.SQLServerExpress:
                return("NHibernate.Driver.SqlClientDriver");

                break;

            case DatabaseTypes.Oracle:
                return("NHibernate.Driver.OracleDataClientDriver");

                break;

            case DatabaseTypes.PostgreSQL:
                return("NHibernate.Driver.NpgsqlDriver");

            case DatabaseTypes.Firebird:
                return("NHibernate.Driver.FirebirdClientDriver");

            case DatabaseTypes.SQLite:
                return("NHibernate.Driver.SQLite20Driver");

            case DatabaseTypes.Unknown:
                return("unknown");

            default:
                throw new NotImplementedException("Driver not handled yet: " + databaseType.ToString());
            }
        }
Example #3
0
        private NHConfigFile CreateConfigFileManually(ArchAngel.Providers.EntityModel.Controller.DatabaseLayer.DatabaseTypes databaseType, string nhConnectionString)
        {
            NHConfigFile nhFile = new NHConfigFile();

            StringBuilder sb = new StringBuilder(1000);

            sb.AppendLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
            sb.AppendLine("<hibernate-configuration xmlns=\"urn:nhibernate-configuration-2.2\">");
            sb.AppendLine("<session-factory>");

            sb.AppendFormat(@"
										<property name=""connection.provider"">NHibernate.Connection.DriverConnectionProvider</property>
										<property name=""dialect"">{0}</property>
										<property name=""connection.driver_class"">{1}</property>
										<property name=""connection.connection_string"">{2}</property>"                                        ,
                            NHConfigFile.GetDialect(false, databaseType),
                            NHConfigFile.GetDriver(databaseType),
                            nhConnectionString
                            );

            if (!string.IsNullOrWhiteSpace(textBoxCacheProviderClass.Text))
            {
                sb.AppendFormat("<property name=\"cache_provider_class\">{0}</property>{1}", textBoxCacheProviderClass.Text, Environment.NewLine);
            }

            if (!string.IsNullOrWhiteSpace(textBoxCacheQueryCacheFactory.Text))
            {
                sb.AppendFormat("<property name=\"cache_query_cache_factory\">{0}</property>{1}", textBoxCacheQueryCacheFactory.Text, Environment.NewLine);
            }

            if (!string.IsNullOrWhiteSpace(textBoxCacheRegionPrefix.Text))
            {
                sb.AppendFormat("<property name=\"cache_region_prefix\">{0}</property>{1}", textBoxCacheRegionPrefix.Text, Environment.NewLine);
            }

            if (!string.IsNullOrWhiteSpace(textBoxMaxFetchDepth.Text))
            {
                sb.AppendFormat("<property name=\"max_fetch_depth\">{0}</property>{1}", textBoxMaxFetchDepth.Text, Environment.NewLine);
            }

            if (!string.IsNullOrWhiteSpace(textBoxQuerySubstitutions.Text))
            {
                sb.AppendFormat("<property name=\"query_substitutions\">{0}</property>{1}", textBoxQuerySubstitutions.Text, Environment.NewLine);
            }

            if (!string.IsNullOrWhiteSpace(textBoxTransactionFactoryClass.Text))
            {
                sb.AppendFormat("<property name=\"transaction_factory_class\">{0}</property>{1}", textBoxTransactionFactoryClass.Text, Environment.NewLine);
            }

            sb.AppendFormat("<property name=\"cache_use_minimal_puts\">{0}</property>{1}", comboBoxCacheUseMinimalPuts.Text, Environment.NewLine);
            sb.AppendFormat("<property name=\"cache_use_query_cache\">{0}</property>{1}", comboBoxCacheUseQueryCache.Text, Environment.NewLine);
            sb.AppendFormat("<property name=\"generate_statistics\">{0}</property>{1}", comboBoxGenerateStatistics.Text, Environment.NewLine);
            sb.AppendFormat("<property name=\"show_sql\">{0}</property>{1}", comboBoxShowSql.Text, Environment.NewLine);
            sb.AppendFormat("<property name=\"use_outer_join\">{0}</property>{1}", comboBoxUseOuterJoin.Text, Environment.NewLine);
            sb.AppendFormat("<property name=\"use_proxy_validator\">{0}</property>{1}", comboBoxUseProxyValidator.Text, Environment.NewLine);

            sb.AppendLine("	</session-factory></hibernate-configuration>");

            nhFile.ConfigXmlFragment = sb.ToString();
            return(nhFile);
        }