/// <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 VisitIn(InExpression inExpression) { Visit(inExpression.Item); _sqlBuilder.Append(inExpression.IsNegated ? " NOT IN " : " IN "); _sqlBuilder.Append("("); var valuesConstant = (SqlConstantExpression)inExpression.Values; var valuesList = ((IEnumerable <object>)valuesConstant.Value) .Select(v => new SqlConstantExpression(Expression.Constant(v), valuesConstant.TypeMapping)).ToList(); GenerateList(valuesList, e => Visit(e)); _sqlBuilder.Append(")"); return(inExpression); }
/// <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 VisitIn(InExpression inExpression);
protected abstract Expression VisitIn([NotNull] InExpression inExpression);