static PersistenceTestsConfiguration() { var postgreSql = new SqlDialect.PostgreSql { JsonBParameterModifier = parameter => { var npgsqlParameter = (NpgsqlParameter)parameter; npgsqlParameter.NpgsqlDbType = NpgsqlDbType.Jsonb; } }; var variants = new List <object> { CreateVariant(new SqlDialect.MsSqlServer(), BuildSqlDialect.MsSqlServer, MsSqlMicrosoftDataClientConnectionBuilder.Build), CreateVariant(postgreSql, BuildSqlDialect.PostgreSql, PostgreSqlConnectionBuilder.Build), CreateVariant(new SqlDialect.MySql(), BuildSqlDialect.MySql, MySqlConnectionBuilder.Build), }; if (!string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("OracleConnectionString"))) { variants.Add(CreateVariant(new SqlDialect.Oracle(), BuildSqlDialect.Oracle, OracleConnectionBuilder.Build)); } SagaVariants = variants.ToArray(); OutboxVariants = variants.ToArray(); }
public static SqlDialect Convert(this BuildSqlDialect sqlDialect, string schema = null) { switch (sqlDialect) { case BuildSqlDialect.MsSqlServer: var sqlServer = new SqlDialect.MsSqlServer(); if (schema != null) { sqlServer.Schema = schema; } return(sqlServer); case BuildSqlDialect.MySql: return(new SqlDialect.MySql()); case BuildSqlDialect.PostgreSql: var postgreSql = new SqlDialect.PostgreSql { JsonBParameterModifier = parameter => { var npgsqlParameter = (Npgsql.NpgsqlParameter)parameter; npgsqlParameter.NpgsqlDbType = NpgsqlDbType.Jsonb; } }; if (schema != null) { postgreSql.Schema = schema; } return(postgreSql); case BuildSqlDialect.Oracle: var oracle = new SqlDialect.Oracle(); if (schema != null) { oracle.Schema = schema; } return(oracle); default: throw new Exception($"Unknown BuildSqlDialect: {sqlDialect}."); } }