예제 #1
0
 public NpgsqlNewGuidTranslator(
     ISqlExpressionFactory sqlExpressionFactory,
     INpgsqlSingletonOptions npgsqlSingletonOptions)
 {
     _sqlExpressionFactory   = sqlExpressionFactory;
     _uuidGenerationFunction = npgsqlSingletonOptions.PostgresVersion.AtLeast(13) ? "gen_random_uuid" : "uuid_generate_v4";
 }
 public NpgsqlQuerySqlGeneratorFactory(
     QuerySqlGeneratorDependencies dependencies,
     INpgsqlSingletonOptions npgsqlSingletonOptions)
 {
     _dependencies           = dependencies;
     _npgsqlSingletonOptions = npgsqlSingletonOptions;
 }
예제 #3
0
 public NpgsqlConventionSetBuilder(
     ProviderConventionSetBuilderDependencies dependencies,
     RelationalConventionSetBuilderDependencies relationalDependencies,
     IRelationalTypeMappingSource typeMappingSource,
     INpgsqlSingletonOptions npgsqlSingletonOptions)
     : base(dependencies, relationalDependencies)
 {
     _typeMappingSource = typeMappingSource;
     _postgresVersion   = npgsqlSingletonOptions.PostgresVersion;
 }
예제 #4
0
 public NpgsqlRangeTranslator(
     IRelationalTypeMappingSource typeMappingSource,
     NpgsqlSqlExpressionFactory npgsqlSqlExpressionFactory,
     IModel model,
     INpgsqlSingletonOptions npgsqlSingletonOptions)
 {
     _typeMappingSource    = typeMappingSource;
     _sqlExpressionFactory = npgsqlSqlExpressionFactory;
     _model = model;
     _supportsMultiranges = npgsqlSingletonOptions.PostgresVersionWithoutDefault is null ||
                            npgsqlSingletonOptions.PostgresVersionWithoutDefault.AtLeast(14);
 }
예제 #5
0
    public NpgsqlMemberTranslatorProvider(
        RelationalMemberTranslatorProviderDependencies dependencies,
        IModel model,
        IRelationalTypeMappingSource typeMappingSource,
        INpgsqlSingletonOptions npgsqlSingletonOptions)
        : base(dependencies)
    {
        var sqlExpressionFactory = (NpgsqlSqlExpressionFactory)dependencies.SqlExpressionFactory;

        JsonPocoTranslator = new NpgsqlJsonPocoTranslator(typeMappingSource, sqlExpressionFactory, model);

        AddTranslators(
            new IMemberTranslator[] {
            new NpgsqlArrayTranslator(sqlExpressionFactory, JsonPocoTranslator, npgsqlSingletonOptions.UseRedshift),
            new NpgsqlBigIntegerMemberTranslator(sqlExpressionFactory),
            new NpgsqlDateTimeMemberTranslator(typeMappingSource, sqlExpressionFactory),
            new NpgsqlJsonDomTranslator(typeMappingSource, sqlExpressionFactory, model),
            new NpgsqlLTreeTranslator(typeMappingSource, sqlExpressionFactory, model),
            JsonPocoTranslator,
            new NpgsqlRangeTranslator(typeMappingSource, sqlExpressionFactory, model, npgsqlSingletonOptions),
            new NpgsqlStringMemberTranslator(sqlExpressionFactory),
            new NpgsqlTimeSpanMemberTranslator(sqlExpressionFactory),
        });
    }
예제 #6
0
    public NpgsqlMethodCallTranslatorProvider(
        RelationalMethodCallTranslatorProviderDependencies dependencies,
        IModel model,
        INpgsqlSingletonOptions npgsqlSingletonOptions)
        : base(dependencies)
    {
        var sqlExpressionFactory = (NpgsqlSqlExpressionFactory)dependencies.SqlExpressionFactory;
        var typeMappingSource    = (NpgsqlTypeMappingSource)dependencies.RelationalTypeMappingSource;
        var jsonTranslator       = new NpgsqlJsonPocoTranslator(typeMappingSource, sqlExpressionFactory, model);

        LTreeTranslator = new NpgsqlLTreeTranslator(typeMappingSource, sqlExpressionFactory, model);

        AddTranslators(new IMethodCallTranslator[]
        {
            new NpgsqlArrayTranslator(sqlExpressionFactory, jsonTranslator, npgsqlSingletonOptions.UseRedshift),
            new NpgsqlByteArrayMethodTranslator(sqlExpressionFactory),
            new NpgsqlConvertTranslator(sqlExpressionFactory),
            new NpgsqlDateTimeMethodTranslator(typeMappingSource, sqlExpressionFactory),
            new NpgsqlFullTextSearchMethodTranslator(typeMappingSource, sqlExpressionFactory, model),
            new NpgsqlFuzzyStringMatchMethodTranslator(sqlExpressionFactory),
            new NpgsqlJsonDomTranslator(typeMappingSource, sqlExpressionFactory, model),
            new NpgsqlJsonDbFunctionsTranslator(typeMappingSource, sqlExpressionFactory, model),
            new NpgsqlLikeTranslator(sqlExpressionFactory),
            LTreeTranslator,
            new NpgsqlMathTranslator(typeMappingSource, sqlExpressionFactory, model),
            new NpgsqlNetworkTranslator(typeMappingSource, sqlExpressionFactory, model),
            new NpgsqlNewGuidTranslator(sqlExpressionFactory, npgsqlSingletonOptions),
            new NpgsqlObjectToStringTranslator(typeMappingSource, sqlExpressionFactory),
            new NpgsqlRandomTranslator(sqlExpressionFactory),
            new NpgsqlRangeTranslator(typeMappingSource, sqlExpressionFactory, model, npgsqlSingletonOptions),
            new NpgsqlRegexIsMatchTranslator(sqlExpressionFactory),
            new NpgsqlRowValueTranslator(sqlExpressionFactory),
            new NpgsqlStringMethodTranslator(typeMappingSource, sqlExpressionFactory, model),
            new NpgsqlTrigramsMethodTranslator(typeMappingSource, sqlExpressionFactory, model),
        });
    }
예제 #7
0
 /// <inheritdoc />
 public NpgsqlModelValidator(
     ModelValidatorDependencies dependencies,
     RelationalModelValidatorDependencies relationalDependencies,
     INpgsqlSingletonOptions npgsqlSingletonOptions)
     : base(dependencies, relationalDependencies)
     => _postgresVersion = npgsqlSingletonOptions.PostgresVersion;