Class NpgsqlSqlExpressionFactory
- Namespace
- Npgsql.EntityFrameworkCore.PostgreSQL.Query
- Assembly
- Npgsql.EntityFrameworkCore.PostgreSQL.dll
Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.
public class NpgsqlSqlExpressionFactory : SqlExpressionFactory, ISqlExpressionFactory
- Inheritance
-
NpgsqlSqlExpressionFactory
- Implements
- Inherited Members
Constructors
NpgsqlSqlExpressionFactory(SqlExpressionFactoryDependencies)
Creates a new instance of the NpgsqlSqlExpressionFactory class.
public NpgsqlSqlExpressionFactory(SqlExpressionFactoryDependencies dependencies)
Parameters
dependenciesSqlExpressionFactoryDependenciesParameter object containing dependencies for this class.
Methods
AggregateFunction(string, IEnumerable<SqlExpression>, EnumerableExpression, bool, IEnumerable<bool>, Type, RelationalTypeMapping?)
Creates a new PgFunctionExpression for a PostgreSQL aggregate function call..
public virtual PgFunctionExpression AggregateFunction(string name, IEnumerable<SqlExpression> arguments, EnumerableExpression aggregateEnumerableExpression, bool nullable, IEnumerable<bool> argumentsPropagateNullability, Type returnType, RelationalTypeMapping? typeMapping = null)
Parameters
namestringargumentsIEnumerable<SqlExpression>aggregateEnumerableExpressionEnumerableExpressionnullableboolargumentsPropagateNullabilityIEnumerable<bool>returnTypeTypetypeMappingRelationalTypeMapping
Returns
All(SqlExpression, SqlExpression, PgAllOperatorType)
Creates a new PgAllExpression, corresponding to the PostgreSQL-specific LIKE ALL operator.
public virtual PgAllExpression All(SqlExpression item, SqlExpression array, PgAllOperatorType operatorType)
Parameters
itemSqlExpressionarraySqlExpressionoperatorTypePgAllOperatorType
Returns
Any(SqlExpression, SqlExpression, PgAnyOperatorType)
Creates a new PgAnyExpression, corresponding to the PostgreSQL-specific = ANY operator.
public virtual PgAnyExpression Any(SqlExpression item, SqlExpression array, PgAnyOperatorType operatorType)
Parameters
itemSqlExpressionarraySqlExpressionoperatorTypePgAnyOperatorType
Returns
ApplyTypeMapping(SqlExpression?, RelationalTypeMapping?)
Applies type mapping to the given SqlExpression.
public override SqlExpression? ApplyTypeMapping(SqlExpression? sqlExpression, RelationalTypeMapping? typeMapping)
Parameters
sqlExpressionSqlExpressionA SQL expression to apply type mapping.
typeMappingRelationalTypeMappingA type mapping to apply.
Returns
- SqlExpression
A SQL expression with given type mapping applied.
ArrayIndex(SqlExpression, SqlExpression, bool, RelationalTypeMapping?)
Creates a new PgArrayIndexExpression, corresponding to the PostgreSQL-specific array subscripting operator.
public virtual PgArrayIndexExpression ArrayIndex(SqlExpression array, SqlExpression index, bool nullable, RelationalTypeMapping? typeMapping = null)
Parameters
arraySqlExpressionindexSqlExpressionnullablebooltypeMappingRelationalTypeMapping
Returns
ArraySlice(SqlExpression, SqlExpression?, SqlExpression?, bool, RelationalTypeMapping?)
Creates a new PgArrayIndexExpression, corresponding to the PostgreSQL-specific array subscripting operator.
public virtual PgArraySliceExpression ArraySlice(SqlExpression array, SqlExpression? lowerBound, SqlExpression? upperBound, bool nullable, RelationalTypeMapping? typeMapping = null)
Parameters
arraySqlExpressionlowerBoundSqlExpressionupperBoundSqlExpressionnullablebooltypeMappingRelationalTypeMapping
Returns
AtTimeZone(SqlExpression, SqlExpression, Type, RelationalTypeMapping?)
Creates a new AtTimeZoneExpression, for converting a timestamp to another time zone.
public virtual AtTimeZoneExpression AtTimeZone(SqlExpression timestamp, SqlExpression timeZone, Type type, RelationalTypeMapping? typeMapping = null)
Parameters
timestampSqlExpressiontimeZoneSqlExpressiontypeTypetypeMappingRelationalTypeMapping
Returns
AtUtc(SqlExpression, RelationalTypeMapping?)
Creates a new AtTimeZoneExpression, for converting a timestamp to UTC.
public virtual AtTimeZoneExpression AtUtc(SqlExpression timestamp, RelationalTypeMapping? typeMapping = null)
Parameters
timestampSqlExpressiontypeMappingRelationalTypeMapping
Returns
ContainedBy(SqlExpression, SqlExpression)
Creates a new PgBinaryExpression, for checking whether one value is contained by another.
public virtual PgBinaryExpression ContainedBy(SqlExpression left, SqlExpression right)
Parameters
leftSqlExpressionrightSqlExpression
Returns
Contains(SqlExpression, SqlExpression)
Creates a new PgBinaryExpression, for checking whether one value contains another.
public virtual PgBinaryExpression Contains(SqlExpression left, SqlExpression right)
Parameters
leftSqlExpressionrightSqlExpression
Returns
GenerateOneBasedIndexExpression(SqlExpression)
PostgreSQL array indexing is 1-based. If the index happens to be a constant, just increment it. Otherwise, append a +1 in the SQL.
public virtual SqlExpression GenerateOneBasedIndexExpression(SqlExpression expression)
Parameters
expressionSqlExpression
Returns
ILike(SqlExpression, SqlExpression, SqlExpression?)
Creates a new AtTimeZoneExpression, for performing a PostgreSQL-specific case-insensitive string match
(ILIKE).
public virtual PgILikeExpression ILike(SqlExpression match, SqlExpression pattern, SqlExpression? escapeChar = null)
Parameters
matchSqlExpressionpatternSqlExpressionescapeCharSqlExpression
Returns
JsonTraversal(SqlExpression, bool, Type, RelationalTypeMapping?)
Creates a new PgJsonTraversalExpression, for traversing inside a JSON document.
public virtual PgJsonTraversalExpression JsonTraversal(SqlExpression expression, bool returnsText, Type type, RelationalTypeMapping? typeMapping = null)
Parameters
expressionSqlExpressionreturnsTextbooltypeTypetypeMappingRelationalTypeMapping
Returns
JsonTraversal(SqlExpression, IEnumerable<SqlExpression>, bool, Type, RelationalTypeMapping?)
Creates a new PgJsonTraversalExpression, for traversing inside a JSON document.
public virtual PgJsonTraversalExpression JsonTraversal(SqlExpression expression, IEnumerable<SqlExpression> path, bool returnsText, Type type, RelationalTypeMapping? typeMapping = null)
Parameters
expressionSqlExpressionpathIEnumerable<SqlExpression>returnsTextbooltypeTypetypeMappingRelationalTypeMapping
Returns
MakeBinary(ExpressionType, SqlExpression, SqlExpression, RelationalTypeMapping?)
Creates a new SqlBinaryExpression with the given arguments.
public override SqlBinaryExpression? MakeBinary(ExpressionType operatorType, SqlExpression left, SqlExpression right, RelationalTypeMapping? typeMapping)
Parameters
operatorTypeExpressionTypeAn ExpressionType representing SQL unary operator.
leftSqlExpressionThe left operand of binary operation.
rightSqlExpressionThe right operand of binary operation.
typeMappingRelationalTypeMappingA type mapping to be assigned to the created expression.
Returns
- SqlBinaryExpression
A SqlBinaryExpression with the given arguments.
MakePostgresBinary(PgExpressionType, SqlExpression, SqlExpression, RelationalTypeMapping?)
Creates a new PgBinaryExpression with the given arguments.
public virtual PgBinaryExpression MakePostgresBinary(PgExpressionType operatorType, SqlExpression left, SqlExpression right, RelationalTypeMapping? typeMapping = null)
Parameters
operatorTypePgExpressionTypeAn ExpressionType representing SQL unary operator.
leftSqlExpressionThe left operand of binary operation.
rightSqlExpressionThe right operand of binary operation.
typeMappingRelationalTypeMappingA type mapping to be assigned to the created expression.
Returns
- PgBinaryExpression
A PgBinaryExpression with the given arguments.
NewArray(IReadOnlyList<SqlExpression>, Type, RelationalTypeMapping?)
Creates a new PgNewArrayExpression, for creating a new PostgreSQL array.
public virtual PgNewArrayExpression NewArray(IReadOnlyList<SqlExpression> expressions, Type type, RelationalTypeMapping? typeMapping = null)
Parameters
expressionsIReadOnlyList<SqlExpression>typeTypetypeMappingRelationalTypeMapping
Returns
NewArrayOrConstant(IReadOnlyList<SqlExpression>, Type, RelationalTypeMapping?)
Constructs either a PgNewArrayExpression, or, if all provided expressions are constants, a single SqlConstantExpression for the entire array.
public virtual SqlExpression NewArrayOrConstant(IReadOnlyList<SqlExpression> elements, Type type, RelationalTypeMapping? typeMapping = null)
Parameters
elementsIReadOnlyList<SqlExpression>typeTypetypeMappingRelationalTypeMapping
Returns
Overlaps(SqlExpression, SqlExpression)
Creates a new PgBinaryExpression, for checking whether one value overlaps with another.
public virtual PgBinaryExpression Overlaps(SqlExpression left, SqlExpression right)
Parameters
leftSqlExpressionrightSqlExpression
Returns
RegexMatch(SqlExpression, SqlExpression, RegexOptions)
Creates a new PgRegexMatchExpression, corresponding to the PostgreSQL-specific ~ operator.
public virtual PgRegexMatchExpression RegexMatch(SqlExpression match, SqlExpression pattern, RegexOptions options)
Parameters
matchSqlExpressionpatternSqlExpressionoptionsRegexOptions