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
dependencies
SqlExpressionFactoryDependenciesParameter 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
name
stringarguments
IEnumerable<SqlExpression>aggregateEnumerableExpression
EnumerableExpressionnullable
boolargumentsPropagateNullability
IEnumerable<bool>returnType
TypetypeMapping
RelationalTypeMapping
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
item
SqlExpressionarray
SqlExpressionoperatorType
PgAllOperatorType
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
item
SqlExpressionarray
SqlExpressionoperatorType
PgAnyOperatorType
Returns
ApplyTypeMapping(SqlExpression?, RelationalTypeMapping?)
Applies type mapping to the given SqlExpression.
public override SqlExpression? ApplyTypeMapping(SqlExpression? sqlExpression, RelationalTypeMapping? typeMapping)
Parameters
sqlExpression
SqlExpressionA SQL expression to apply type mapping.
typeMapping
RelationalTypeMappingA 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
array
SqlExpressionindex
SqlExpressionnullable
booltypeMapping
RelationalTypeMapping
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
array
SqlExpressionlowerBound
SqlExpressionupperBound
SqlExpressionnullable
booltypeMapping
RelationalTypeMapping
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
timestamp
SqlExpressiontimeZone
SqlExpressiontype
TypetypeMapping
RelationalTypeMapping
Returns
AtUtc(SqlExpression, RelationalTypeMapping?)
Creates a new AtTimeZoneExpression, for converting a timestamp to UTC.
public virtual AtTimeZoneExpression AtUtc(SqlExpression timestamp, RelationalTypeMapping? typeMapping = null)
Parameters
timestamp
SqlExpressiontypeMapping
RelationalTypeMapping
Returns
ContainedBy(SqlExpression, SqlExpression)
Creates a new PgBinaryExpression, for checking whether one value is contained by another.
public virtual SqlExpression ContainedBy(SqlExpression left, SqlExpression right)
Parameters
left
SqlExpressionright
SqlExpression
Returns
Contains(SqlExpression, SqlExpression)
Creates a new PgBinaryExpression, for checking whether one value contains another.
public virtual SqlExpression Contains(SqlExpression left, SqlExpression right)
Parameters
left
SqlExpressionright
SqlExpression
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
expression
SqlExpression
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
match
SqlExpressionpattern
SqlExpressionescapeChar
SqlExpression
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
expression
SqlExpressionreturnsText
booltype
TypetypeMapping
RelationalTypeMapping
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
expression
SqlExpressionpath
IEnumerable<SqlExpression>returnsText
booltype
TypetypeMapping
RelationalTypeMapping
Returns
MakeBinary(ExpressionType, SqlExpression, SqlExpression, RelationalTypeMapping?, SqlExpression?)
Creates a new SqlExpression with the given arguments.
public override SqlExpression? MakeBinary(ExpressionType operatorType, SqlExpression left, SqlExpression right, RelationalTypeMapping? typeMapping, SqlExpression? existingExpr = null)
Parameters
operatorType
ExpressionTypeAn ExpressionType representing SQL unary operator.
left
SqlExpressionThe left operand of binary operation.
right
SqlExpressionThe right operand of binary operation.
typeMapping
RelationalTypeMappingA type mapping to be assigned to the created expression.
existingExpr
SqlExpression
Returns
- SqlExpression
A SqlExpression with the given arguments.
MakePostgresBinary(PgExpressionType, SqlExpression, SqlExpression, RelationalTypeMapping?)
Creates a new PgBinaryExpression with the given arguments.
public virtual SqlExpression MakePostgresBinary(PgExpressionType operatorType, SqlExpression left, SqlExpression right, RelationalTypeMapping? typeMapping = null)
Parameters
operatorType
PgExpressionTypeAn ExpressionType representing SQL unary operator.
left
SqlExpressionThe left operand of binary operation.
right
SqlExpressionThe right operand of binary operation.
typeMapping
RelationalTypeMappingA type mapping to be assigned to the created expression.
Returns
- SqlExpression
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
expressions
IReadOnlyList<SqlExpression>type
TypetypeMapping
RelationalTypeMapping
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
elements
IReadOnlyList<SqlExpression>type
TypetypeMapping
RelationalTypeMapping
Returns
Overlaps(SqlExpression, SqlExpression)
Creates a new PgBinaryExpression, for checking whether one value overlaps with another.
public virtual SqlExpression Overlaps(SqlExpression left, SqlExpression right)
Parameters
left
SqlExpressionright
SqlExpression
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
match
SqlExpressionpattern
SqlExpressionoptions
RegexOptions