/// <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);
        }
Ejemplo n.º 2
0
 /// <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);
Ejemplo n.º 3
0
 protected abstract Expression VisitIn([NotNull] InExpression inExpression);