public virtual void Print(ExpressionPrinter expressionPrinter)
        {
            Check.NotNull(expressionPrinter, nameof(expressionPrinter));

            expressionPrinter.AppendLine(nameof(InMemoryQueryExpression) + ": ");
            using (expressionPrinter.Indent())
            {
                expressionPrinter.AppendLine(nameof(ServerQueryExpression) + ": ");
                using (expressionPrinter.Indent())
                {
                    expressionPrinter.Visit(ServerQueryExpression);
                }

                expressionPrinter.AppendLine("ProjectionMapping:");
                using (expressionPrinter.Indent())
                {
                    foreach (var projectionMapping in _projectionMapping)
                    {
                        expressionPrinter.Append("Member: " + projectionMapping.Key + " Projection: ");
                        expressionPrinter.Visit(projectionMapping.Value);
                    }
                }

                expressionPrinter.AppendLine();
            }
        }
Пример #2
0
        public override void Print(ExpressionPrinter expressionPrinter)
        {
            expressionPrinter.Append("CASE");
            if (Operand != null)
            {
                expressionPrinter.Append(" ");
                expressionPrinter.Visit(Operand);
            }

            using (expressionPrinter.Indent())
            {
                foreach (var whenClause in WhenClauses)
                {
                    expressionPrinter.AppendLine().Append("WHEN ");
                    expressionPrinter.Visit(whenClause.Test);
                    expressionPrinter.Append(" THEN ");
                    expressionPrinter.Visit(whenClause.Result);
                }

                if (ElseResult != null)
                {
                    expressionPrinter.AppendLine().Append("ELSE ");
                    expressionPrinter.Visit(ElseResult);
                }
            }

            expressionPrinter.AppendLine().Append("END");
        }
Пример #3
0
 /// <inheritdoc />
 void IPrintableExpression.Print(ExpressionPrinter expressionPrinter)
 {
     expressionPrinter.AppendLine($"{nameof(GroupByShaperExpression)}:");
     expressionPrinter.Append("KeySelector: ");
     expressionPrinter.Visit(KeySelector);
     expressionPrinter.AppendLine(", ");
     expressionPrinter.Append("GroupingEnumerable:");
     expressionPrinter.Visit(GroupingEnumerable);
     expressionPrinter.AppendLine();
 }
Пример #4
0
 /// <inheritdoc />
 void IPrintableExpression.Print(ExpressionPrinter expressionPrinter)
 {
     expressionPrinter.AppendLine("IncludeExpression(");
     using (expressionPrinter.Indent())
     {
         expressionPrinter.Visit(EntityExpression);
         expressionPrinter.AppendLine(", ");
         expressionPrinter.Visit(NavigationExpression);
         expressionPrinter.AppendLine($", {Navigation.Name})");
     }
 }
Пример #5
0
 /// <inheritdoc />
 void IPrintableExpression.Print(ExpressionPrinter expressionPrinter)
 {
     expressionPrinter.AppendLine("MaterializeCollectionNavigation(");
     using (expressionPrinter.Indent())
     {
         expressionPrinter.AppendLine($"Navigation: {Navigation.DeclaringEntityType.DisplayName()}.{Navigation.Name},");
         expressionPrinter.Append("subquery: ");
         expressionPrinter.Visit(Subquery);
         expressionPrinter.Append(")");
     }
 }
 public virtual void Print(ExpressionPrinter expressionPrinter)
 {
     expressionPrinter.AppendLine($"{nameof(SingleResultShaperExpression)}:");
     using (expressionPrinter.Indent())
     {
         expressionPrinter.Append("(");
         expressionPrinter.Visit(Projection);
         expressionPrinter.Append(", ");
         expressionPrinter.Visit(InnerShaper);
         expressionPrinter.AppendLine($")");
     }
 }
 public virtual void Print(ExpressionPrinter expressionPrinter)
 {
     expressionPrinter.AppendLine(nameof(NavigationTreeExpression));
     using (expressionPrinter.Indent())
     {
         expressionPrinter.Append("Value: ");
         expressionPrinter.Visit(Value);
         expressionPrinter.AppendLine();
         expressionPrinter.Append("Expression: ");
         expressionPrinter.Visit(GetExpression());
     }
 }
 /// <inheritdoc />
 void IPrintableExpression.Print(ExpressionPrinter expressionPrinter)
 {
     expressionPrinter.AppendLine("CollectionResultShaperExpression:");
     using (expressionPrinter.Indent())
     {
         expressionPrinter.Append("(");
         expressionPrinter.Visit(Projection);
         expressionPrinter.Append(", ");
         expressionPrinter.Visit(InnerShaper);
         expressionPrinter.AppendLine($", {Navigation?.Name}, {ElementType.ShortDisplayName()})");
     }
 }
 void IPrintableExpression.Print(ExpressionPrinter expressionPrinter)
 {
     expressionPrinter.AppendLine(nameof(GroupByNavigationExpansionExpression));
     using (expressionPrinter.Indent())
     {
         expressionPrinter.Append("Source: ");
         expressionPrinter.Visit(Source);
         expressionPrinter.AppendLine();
         expressionPrinter.Append("GroupingEnumerable: ");
         expressionPrinter.Visit(GroupingEnumerable);
         expressionPrinter.AppendLine();
     }
 }
 public virtual void Print(ExpressionPrinter expressionPrinter)
 {
     expressionPrinter.AppendLine(nameof(EntityProjectionExpression) + ":");
     using (expressionPrinter.Indent())
     {
         foreach (var readExpressionMapEntry in _readExpressionMap)
         {
             expressionPrinter.Append(readExpressionMapEntry.Key + " -> ");
             expressionPrinter.Visit(readExpressionMapEntry.Value);
             expressionPrinter.AppendLine();
         }
     }
 }
Пример #11
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>
        void IPrintableExpression.Print(ExpressionPrinter expressionPrinter)
        {
            Check.NotNull(expressionPrinter, nameof(expressionPrinter));

            expressionPrinter.AppendLine($"{nameof(SingleResultShaperExpression)}:");
            using (expressionPrinter.Indent())
            {
                expressionPrinter.Append("(");
                expressionPrinter.Visit(Projection);
                expressionPrinter.Append(", ");
                expressionPrinter.Visit(InnerShaper);
                expressionPrinter.AppendLine(")");
            }
        }
            void IPrintableExpression.Print(ExpressionPrinter expressionPrinter)
            {
                Check.NotNull(expressionPrinter, nameof(expressionPrinter));

                expressionPrinter.AppendLine(nameof(NavigationTreeExpression));
                using (expressionPrinter.Indent())
                {
                    expressionPrinter.Append("Value: ");
                    expressionPrinter.Visit(Value);
                    expressionPrinter.AppendLine();
                    expressionPrinter.Append("Expression: ");
                    expressionPrinter.Visit(GetExpression());
                }
            }
    /// <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>
    void IPrintableExpression.Print(ExpressionPrinter expressionPrinter)
    {
        Check.NotNull(expressionPrinter, nameof(expressionPrinter));

        expressionPrinter.AppendLine("CollectionShaper:");
        using (expressionPrinter.Indent())
        {
            expressionPrinter.Append("(");
            expressionPrinter.Visit(Projection);
            expressionPrinter.Append(", ");
            expressionPrinter.Visit(InnerShaper);
            expressionPrinter.AppendLine($", {Navigation?.Name})");
        }
    }
Пример #14
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>
        void IPrintableExpression.Print(ExpressionPrinter expressionPrinter)
        {
            Check.NotNull(expressionPrinter, nameof(expressionPrinter));

            expressionPrinter.AppendLine(nameof(EntityProjectionExpression) + ":");
            using (expressionPrinter.Indent())
            {
                foreach (var readExpressionMapEntry in _readExpressionMap)
                {
                    expressionPrinter.Append(readExpressionMapEntry.Key + " -> ");
                    expressionPrinter.Visit(readExpressionMapEntry.Value);
                    expressionPrinter.AppendLine();
                }
            }
        }
Пример #15
0
    /// <inheritdoc />
    public virtual void Print(ExpressionPrinter expressionPrinter)
    {
        expressionPrinter.AppendLine("CollectionResultExpression:");
        using (expressionPrinter.Indent())
        {
            expressionPrinter.Append("ProjectionBindingExpression:");
            expressionPrinter.Visit(ProjectionBindingExpression);
            expressionPrinter.AppendLine();
            if (Navigation != null)
            {
                expressionPrinter.Append("Navigation:").AppendLine(Navigation.ToString() !);
            }

            expressionPrinter.Append("ElementType:").AppendLine(ElementType.ShortDisplayName());
        }
    }
 /// <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 void Print(ExpressionPrinter expressionPrinter)
 {
     base.Print(expressionPrinter);
     expressionPrinter.Append($".FromSql({Sql}, ");
     expressionPrinter.Visit(Argument);
     expressionPrinter.AppendLine(")");
 }
 public override void Print(ExpressionPrinter expressionPrinter)
 {
     expressionPrinter.Append("(");
     expressionPrinter.Visit(SqlFunctionExpression);
     expressionPrinter.AppendLine()
     .AppendLine($") AS {Alias}");
 }
Пример #18
0
    /// <inheritdoc />
    void IPrintableExpression.Print(ExpressionPrinter expressionPrinter)
    {
        expressionPrinter.AppendLine(nameof(EntityShaperExpression) + ": ");
        using (expressionPrinter.Indent())
        {
            expressionPrinter.AppendLine(EntityType.Name);
            expressionPrinter.AppendLine(nameof(ValueBufferExpression) + ": ");
            using (expressionPrinter.Indent())
            {
                expressionPrinter.Visit(ValueBufferExpression);
                expressionPrinter.AppendLine();
            }

            expressionPrinter.Append(nameof(IsNullable) + ": ");
            expressionPrinter.AppendLine(IsNullable.ToString());
        }
    }
Пример #19
0
 public override void Print(ExpressionPrinter expressionPrinter)
 {
     expressionPrinter.Append("(");
     using (expressionPrinter.Indent())
     {
         expressionPrinter.Visit(Source1);
         expressionPrinter.AppendLine();
         expressionPrinter.Append("EXCEPT");
         if (!IsDistinct)
         {
             expressionPrinter.AppendLine(" ALL");
         }
         expressionPrinter.Visit(Source2);
     }
     expressionPrinter.AppendLine()
     .AppendLine($") AS {Alias}");
 }
Пример #20
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 override void Print(ExpressionPrinter expressionPrinter)
        {
            Check.NotNull(expressionPrinter, nameof(expressionPrinter));

            base.Print(expressionPrinter);
            expressionPrinter.Append($".FromSql({Sql}, ");
            expressionPrinter.Visit(Argument);
            expressionPrinter.AppendLine(")");
        }
Пример #21
0
        public override void Print(ExpressionPrinter expressionPrinter)
        {
            Check.NotNull(expressionPrinter, nameof(expressionPrinter));

            expressionPrinter.Append("(");
            using (expressionPrinter.Indent())
            {
                expressionPrinter.Visit(Source1);
                expressionPrinter.AppendLine();
                expressionPrinter.Append("UNION");
                if (!IsDistinct)
                {
                    expressionPrinter.AppendLine(" ALL");
                }

                expressionPrinter.Visit(Source2);
            }

            expressionPrinter.AppendLine()
            .AppendLine($") AS {Alias}");
        }
Пример #22
0
    /// <inheritdoc />
    protected override void Print(ExpressionPrinter expressionPrinter)
    {
        expressionPrinter.Append("(");
        using (expressionPrinter.Indent())
        {
            expressionPrinter.Visit(Source1);
            expressionPrinter.AppendLine();
            expressionPrinter.Append("EXCEPT");
            if (!IsDistinct)
            {
                expressionPrinter.AppendLine(" ALL");
            }

            expressionPrinter.Visit(Source2);
        }

        expressionPrinter.AppendLine();
        expressionPrinter.Append(")");
        PrintAnnotations(expressionPrinter);
        expressionPrinter.AppendLine($" AS {Alias}");
    }
Пример #23
0
        public override void Print(ExpressionPrinter expressionPrinter)
        {
            if (IsNegated)
            {
                expressionPrinter.Append("NOT ");
            }

            expressionPrinter.AppendLine("EXISTS (");
            using (expressionPrinter.Indent())
            {
                expressionPrinter.Visit(Subquery);
            }

            expressionPrinter.Append(")");
        }
Пример #24
0
        /// <inheritdoc />
        protected override void Print(ExpressionPrinter expressionPrinter)
        {
            Check.NotNull(expressionPrinter, nameof(expressionPrinter));

            if (IsNegated)
            {
                expressionPrinter.Append("NOT ");
            }

            expressionPrinter.AppendLine("EXISTS (");
            using (expressionPrinter.Indent())
            {
                expressionPrinter.Visit(Subquery);
            }

            expressionPrinter.Append(")");
        }
 /// <inheritdoc />
 void IPrintableExpression.Print(ExpressionPrinter expressionPrinter)
 {
     expressionPrinter.AppendLine("RelationalCollectionShaper:");
     using (expressionPrinter.Indent())
     {
         expressionPrinter.Append("ParentIdentifier:");
         expressionPrinter.Visit(ParentIdentifier);
         expressionPrinter.AppendLine();
         expressionPrinter.Append("ChildIdentifier:");
         expressionPrinter.Visit(ChildIdentifier);
         expressionPrinter.AppendLine();
         expressionPrinter.Append("SelectExpression:");
         expressionPrinter.Visit(SelectExpression);
         expressionPrinter.AppendLine();
         expressionPrinter.Append("InnerShaper:");
         expressionPrinter.Visit(InnerShaper);
         expressionPrinter.AppendLine();
         expressionPrinter.AppendLine($"Navigation: {Navigation?.Name}");
     }
 }