private SqlExpression ApplyTypeMappingOnSqlConditional( SqlConditionalExpression sqlConditionalExpression, CoreTypeMapping typeMapping) { return(sqlConditionalExpression.Update( sqlConditionalExpression.Test, ApplyTypeMapping(sqlConditionalExpression.IfTrue, typeMapping), ApplyTypeMapping(sqlConditionalExpression.IfFalse, typeMapping))); }
/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> protected override Expression VisitExtension(Expression extensionExpression) { return(extensionExpression switch { ShapedQueryExpression shapedQueryExpression => VisitShapedQueryExpression(shapedQueryExpression), ReadItemExpression readItemExpression => readItemExpression, SelectExpression selectExpression => VisitSelect(selectExpression), SqlConditionalExpression sqlConditionalExpression => VisitSqlConditional(sqlConditionalExpression), _ => base.VisitExtension(extensionExpression), });
/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> protected override Expression VisitSqlConditional(SqlConditionalExpression sqlConditionalExpression) { _sqlBuilder.Append("("); Visit(sqlConditionalExpression.Test); _sqlBuilder.Append(" ? "); Visit(sqlConditionalExpression.IfTrue); _sqlBuilder.Append(" : "); Visit(sqlConditionalExpression.IfFalse); _sqlBuilder.Append(")"); return(sqlConditionalExpression); }
/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> protected abstract Expression VisitSqlConditional(SqlConditionalExpression sqlConditionalExpression);
protected abstract Expression VisitSqlConditional([NotNull] SqlConditionalExpression sqlConditionalExpression);