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();
        }
Пример #2
0
    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}.");
        }
    }