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()); } }
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); }