Table of Contents

Class SqlExpressionFactory

Namespace
Microsoft.EntityFrameworkCore.Query
Assembly
Microsoft.EntityFrameworkCore.Relational.dll
public class SqlExpressionFactory : ISqlExpressionFactory
Inheritance
SqlExpressionFactory
Implements
Inherited Members

Constructors

SqlExpressionFactory(SqlExpressionFactoryDependencies)

Creates a new instance of the SqlExpressionFactory class.

public SqlExpressionFactory(SqlExpressionFactoryDependencies dependencies)

Parameters

dependencies SqlExpressionFactoryDependencies

Parameter object containing dependencies for this class.

Methods

Add(SqlExpression, SqlExpression, RelationalTypeMapping)

public virtual SqlBinaryExpression Add(SqlExpression left, SqlExpression right, RelationalTypeMapping typeMapping = null)

Parameters

left SqlExpression
right SqlExpression
typeMapping RelationalTypeMapping

Returns

SqlBinaryExpression

And(SqlExpression, SqlExpression, RelationalTypeMapping)

public virtual SqlBinaryExpression And(SqlExpression left, SqlExpression right, RelationalTypeMapping typeMapping = null)

Parameters

left SqlExpression
right SqlExpression
typeMapping RelationalTypeMapping

Returns

SqlBinaryExpression

AndAlso(SqlExpression, SqlExpression)

public virtual SqlBinaryExpression AndAlso(SqlExpression left, SqlExpression right)

Parameters

left SqlExpression
right SqlExpression

Returns

SqlBinaryExpression

ApplyDefaultTypeMapping(SqlExpression)

public virtual SqlExpression ApplyDefaultTypeMapping(SqlExpression sqlExpression)

Parameters

sqlExpression SqlExpression

Returns

SqlExpression

ApplyTypeMapping(SqlExpression, RelationalTypeMapping)

public virtual SqlExpression ApplyTypeMapping(SqlExpression sqlExpression, RelationalTypeMapping typeMapping)

Parameters

sqlExpression SqlExpression
typeMapping RelationalTypeMapping

Returns

SqlExpression

Case(SqlExpression, params CaseWhenClause[])

[Obsolete("Use overload which takes IReadOnlyList instead of params")]
public virtual CaseExpression Case(SqlExpression operand, params CaseWhenClause[] whenClauses)

Parameters

operand SqlExpression
whenClauses CaseWhenClause[]

Returns

CaseExpression

Case(SqlExpression, IReadOnlyList<CaseWhenClause>, SqlExpression)

public virtual CaseExpression Case(SqlExpression operand, IReadOnlyList<CaseWhenClause> whenClauses, SqlExpression elseResult)

Parameters

operand SqlExpression
whenClauses IReadOnlyList<CaseWhenClause>
elseResult SqlExpression

Returns

CaseExpression

Case(IReadOnlyList<CaseWhenClause>, SqlExpression)

public virtual CaseExpression Case(IReadOnlyList<CaseWhenClause> whenClauses, SqlExpression elseResult)

Parameters

whenClauses IReadOnlyList<CaseWhenClause>
elseResult SqlExpression

Returns

CaseExpression

Coalesce(SqlExpression, SqlExpression, RelationalTypeMapping)

public virtual SqlFunctionExpression Coalesce(SqlExpression left, SqlExpression right, RelationalTypeMapping typeMapping = null)

Parameters

left SqlExpression
right SqlExpression
typeMapping RelationalTypeMapping

Returns

SqlFunctionExpression

Constant(object, RelationalTypeMapping)

public virtual SqlConstantExpression Constant(object value, RelationalTypeMapping typeMapping = null)

Parameters

value object
typeMapping RelationalTypeMapping

Returns

SqlConstantExpression

Convert(SqlExpression, Type, RelationalTypeMapping)

public virtual SqlUnaryExpression Convert(SqlExpression operand, Type type, RelationalTypeMapping typeMapping = null)

Parameters

operand SqlExpression
type Type
typeMapping RelationalTypeMapping

Returns

SqlUnaryExpression

Divide(SqlExpression, SqlExpression, RelationalTypeMapping)

public virtual SqlBinaryExpression Divide(SqlExpression left, SqlExpression right, RelationalTypeMapping typeMapping = null)

Parameters

left SqlExpression
right SqlExpression
typeMapping RelationalTypeMapping

Returns

SqlBinaryExpression

Equal(SqlExpression, SqlExpression)

public virtual SqlBinaryExpression Equal(SqlExpression left, SqlExpression right)

Parameters

left SqlExpression
right SqlExpression

Returns

SqlBinaryExpression

Exists(SelectExpression, bool)

public virtual ExistsExpression Exists(SelectExpression subquery, bool negated)

Parameters

subquery SelectExpression
negated bool

Returns

ExistsExpression

FindMapping(Type)

[Obsolete("Use IRelationalTypeMappingSource directly.")]
public virtual RelationalTypeMapping FindMapping(Type type)

Parameters

type Type

Returns

RelationalTypeMapping

Fragment(string)

public virtual SqlFragmentExpression Fragment(string sql)

Parameters

sql string

Returns

SqlFragmentExpression

Function(SqlExpression, string, IEnumerable<SqlExpression>, bool, bool, IEnumerable<bool>, Type, RelationalTypeMapping)

public virtual SqlFunctionExpression Function(SqlExpression instance, string name, IEnumerable<SqlExpression> arguments, bool nullable, bool instancePropagatesNullability, IEnumerable<bool> argumentsPropagateNullability, Type returnType, RelationalTypeMapping typeMapping = null)

Parameters

instance SqlExpression
name string
arguments IEnumerable<SqlExpression>
nullable bool
instancePropagatesNullability bool
argumentsPropagateNullability IEnumerable<bool>
returnType Type
typeMapping RelationalTypeMapping

Returns

SqlFunctionExpression

Function(SqlExpression, string, IEnumerable<SqlExpression>, Type, RelationalTypeMapping)

[Obsolete("Use overload that explicitly specifies values for 'instancePropagatesNullability' and 'argumentsPropagateNullability' arguments.")]
public virtual SqlFunctionExpression Function(SqlExpression instance, string name, IEnumerable<SqlExpression> arguments, Type returnType, RelationalTypeMapping typeMapping = null)

Parameters

instance SqlExpression
name string
arguments IEnumerable<SqlExpression>
returnType Type
typeMapping RelationalTypeMapping

Returns

SqlFunctionExpression

Function(SqlExpression, string, Type, RelationalTypeMapping)

[Obsolete("Use NiladicFunction method.")]
public virtual SqlFunctionExpression Function(SqlExpression instance, string name, Type returnType, RelationalTypeMapping typeMapping = null)

Parameters

instance SqlExpression
name string
returnType Type
typeMapping RelationalTypeMapping

Returns

SqlFunctionExpression

Function(string, IEnumerable<SqlExpression>, bool, IEnumerable<bool>, Type, RelationalTypeMapping)

public virtual SqlFunctionExpression Function(string name, IEnumerable<SqlExpression> arguments, bool nullable, IEnumerable<bool> argumentsPropagateNullability, Type returnType, RelationalTypeMapping typeMapping = null)

Parameters

name string
arguments IEnumerable<SqlExpression>
nullable bool
argumentsPropagateNullability IEnumerable<bool>
returnType Type
typeMapping RelationalTypeMapping

Returns

SqlFunctionExpression

Function(string, IEnumerable<SqlExpression>, Type, RelationalTypeMapping)

[Obsolete("Use overload that explicitly specifies value for 'argumentsPropagateNullability' argument.")]
public virtual SqlFunctionExpression Function(string name, IEnumerable<SqlExpression> arguments, Type returnType, RelationalTypeMapping typeMapping = null)

Parameters

name string
arguments IEnumerable<SqlExpression>
returnType Type
typeMapping RelationalTypeMapping

Returns

SqlFunctionExpression

Function(string, string, IEnumerable<SqlExpression>, bool, IEnumerable<bool>, Type, RelationalTypeMapping)

public virtual SqlFunctionExpression Function(string schema, string name, IEnumerable<SqlExpression> arguments, bool nullable, IEnumerable<bool> argumentsPropagateNullability, Type returnType, RelationalTypeMapping typeMapping = null)

Parameters

schema string
name string
arguments IEnumerable<SqlExpression>
nullable bool
argumentsPropagateNullability IEnumerable<bool>
returnType Type
typeMapping RelationalTypeMapping

Returns

SqlFunctionExpression

Function(string, string, IEnumerable<SqlExpression>, Type, RelationalTypeMapping)

[Obsolete("Use overload that explicitly specifies value for 'argumentsPropagateNullability' argument.")]
public virtual SqlFunctionExpression Function(string schema, string name, IEnumerable<SqlExpression> arguments, Type returnType, RelationalTypeMapping typeMapping = null)

Parameters

schema string
name string
arguments IEnumerable<SqlExpression>
returnType Type
typeMapping RelationalTypeMapping

Returns

SqlFunctionExpression

Function(string, string, Type, RelationalTypeMapping)

[Obsolete("Use NiladicFunction method.")]
public virtual SqlFunctionExpression Function(string schema, string name, Type returnType, RelationalTypeMapping typeMapping = null)

Parameters

schema string
name string
returnType Type
typeMapping RelationalTypeMapping

Returns

SqlFunctionExpression

Function(string, Type, RelationalTypeMapping)

[Obsolete("Use NiladicFunction method.")]
public virtual SqlFunctionExpression Function(string name, Type returnType, RelationalTypeMapping typeMapping = null)

Parameters

name string
returnType Type
typeMapping RelationalTypeMapping

Returns

SqlFunctionExpression

GetTypeMappingForValue(object)

[Obsolete("Use IRelationalTypeMappingSource directly.")]
public virtual RelationalTypeMapping GetTypeMappingForValue(object value)

Parameters

value object

Returns

RelationalTypeMapping

GreaterThan(SqlExpression, SqlExpression)

public virtual SqlBinaryExpression GreaterThan(SqlExpression left, SqlExpression right)

Parameters

left SqlExpression
right SqlExpression

Returns

SqlBinaryExpression

GreaterThanOrEqual(SqlExpression, SqlExpression)

public virtual SqlBinaryExpression GreaterThanOrEqual(SqlExpression left, SqlExpression right)

Parameters

left SqlExpression
right SqlExpression

Returns

SqlBinaryExpression

In(SqlExpression, SelectExpression, bool)

public virtual InExpression In(SqlExpression item, SelectExpression subquery, bool negated)

Parameters

item SqlExpression
subquery SelectExpression
negated bool

Returns

InExpression

In(SqlExpression, SqlExpression, bool)

public virtual InExpression In(SqlExpression item, SqlExpression values, bool negated)

Parameters

item SqlExpression
values SqlExpression
negated bool

Returns

InExpression

IsNotNull(SqlExpression)

public virtual SqlUnaryExpression IsNotNull(SqlExpression operand)

Parameters

operand SqlExpression

Returns

SqlUnaryExpression

IsNull(SqlExpression)

public virtual SqlUnaryExpression IsNull(SqlExpression operand)

Parameters

operand SqlExpression

Returns

SqlUnaryExpression

LessThan(SqlExpression, SqlExpression)

public virtual SqlBinaryExpression LessThan(SqlExpression left, SqlExpression right)

Parameters

left SqlExpression
right SqlExpression

Returns

SqlBinaryExpression

LessThanOrEqual(SqlExpression, SqlExpression)

public virtual SqlBinaryExpression LessThanOrEqual(SqlExpression left, SqlExpression right)

Parameters

left SqlExpression
right SqlExpression

Returns

SqlBinaryExpression

Like(SqlExpression, SqlExpression, SqlExpression)

public virtual LikeExpression Like(SqlExpression match, SqlExpression pattern, SqlExpression escapeChar = null)

Parameters

match SqlExpression
pattern SqlExpression
escapeChar SqlExpression

Returns

LikeExpression

MakeBinary(ExpressionType, SqlExpression, SqlExpression, RelationalTypeMapping)

public virtual SqlBinaryExpression MakeBinary(ExpressionType operatorType, SqlExpression left, SqlExpression right, RelationalTypeMapping typeMapping)

Parameters

operatorType ExpressionType
left SqlExpression
right SqlExpression
typeMapping RelationalTypeMapping

Returns

SqlBinaryExpression

MakeUnary(ExpressionType, SqlExpression, Type, RelationalTypeMapping)

public virtual SqlUnaryExpression MakeUnary(ExpressionType operatorType, SqlExpression operand, Type type, RelationalTypeMapping typeMapping = null)

Parameters

operatorType ExpressionType
operand SqlExpression
type Type
typeMapping RelationalTypeMapping

Returns

SqlUnaryExpression

Modulo(SqlExpression, SqlExpression, RelationalTypeMapping)

public virtual SqlBinaryExpression Modulo(SqlExpression left, SqlExpression right, RelationalTypeMapping typeMapping = null)

Parameters

left SqlExpression
right SqlExpression
typeMapping RelationalTypeMapping

Returns

SqlBinaryExpression

Multiply(SqlExpression, SqlExpression, RelationalTypeMapping)

public virtual SqlBinaryExpression Multiply(SqlExpression left, SqlExpression right, RelationalTypeMapping typeMapping = null)

Parameters

left SqlExpression
right SqlExpression
typeMapping RelationalTypeMapping

Returns

SqlBinaryExpression

Negate(SqlExpression)

public virtual SqlUnaryExpression Negate(SqlExpression operand)

Parameters

operand SqlExpression

Returns

SqlUnaryExpression

NiladicFunction(SqlExpression, string, bool, bool, Type, RelationalTypeMapping)

public virtual SqlFunctionExpression NiladicFunction(SqlExpression instance, string name, bool nullable, bool instancePropagatesNullability, Type returnType, RelationalTypeMapping typeMapping = null)

Parameters

instance SqlExpression
name string
nullable bool
instancePropagatesNullability bool
returnType Type
typeMapping RelationalTypeMapping

Returns

SqlFunctionExpression

NiladicFunction(string, bool, Type, RelationalTypeMapping)

public virtual SqlFunctionExpression NiladicFunction(string name, bool nullable, Type returnType, RelationalTypeMapping typeMapping = null)

Parameters

name string
nullable bool
returnType Type
typeMapping RelationalTypeMapping

Returns

SqlFunctionExpression

NiladicFunction(string, string, bool, Type, RelationalTypeMapping)

public virtual SqlFunctionExpression NiladicFunction(string schema, string name, bool nullable, Type returnType, RelationalTypeMapping typeMapping = null)

Parameters

schema string
name string
nullable bool
returnType Type
typeMapping RelationalTypeMapping

Returns

SqlFunctionExpression

Not(SqlExpression)

public virtual SqlUnaryExpression Not(SqlExpression operand)

Parameters

operand SqlExpression

Returns

SqlUnaryExpression

NotEqual(SqlExpression, SqlExpression)

public virtual SqlBinaryExpression NotEqual(SqlExpression left, SqlExpression right)

Parameters

left SqlExpression
right SqlExpression

Returns

SqlBinaryExpression

Or(SqlExpression, SqlExpression, RelationalTypeMapping)

public virtual SqlBinaryExpression Or(SqlExpression left, SqlExpression right, RelationalTypeMapping typeMapping = null)

Parameters

left SqlExpression
right SqlExpression
typeMapping RelationalTypeMapping

Returns

SqlBinaryExpression

OrElse(SqlExpression, SqlExpression)

public virtual SqlBinaryExpression OrElse(SqlExpression left, SqlExpression right)

Parameters

left SqlExpression
right SqlExpression

Returns

SqlBinaryExpression

Select(IEntityType)

public virtual SelectExpression Select(IEntityType entityType)

Parameters

entityType IEntityType

Returns

SelectExpression

Select(IEntityType, TableExpressionBase)

public virtual SelectExpression Select(IEntityType entityType, TableExpressionBase tableExpressionBase)

Parameters

entityType IEntityType
tableExpressionBase TableExpressionBase

Returns

SelectExpression

Select(IEntityType, string, Expression)

[Obsolete("Use overload which takes TableExpressionBase by passing FromSqlExpression directly.")]
public virtual SelectExpression Select(IEntityType entityType, string sql, Expression sqlArguments)

Parameters

entityType IEntityType
sql string
sqlArguments Expression

Returns

SelectExpression

Select(SqlExpression)

public virtual SelectExpression Select(SqlExpression projection)

Parameters

projection SqlExpression

Returns

SelectExpression

Subtract(SqlExpression, SqlExpression, RelationalTypeMapping)

public virtual SqlBinaryExpression Subtract(SqlExpression left, SqlExpression right, RelationalTypeMapping typeMapping = null)

Parameters

left SqlExpression
right SqlExpression
typeMapping RelationalTypeMapping

Returns

SqlBinaryExpression