예제 #1
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 Expression VisitTableValuedFunction(TableValuedFunctionExpression tableValuedFunctionExpression)
        {
            Check.NotNull(tableValuedFunctionExpression, nameof(tableValuedFunctionExpression));

            if (string.IsNullOrEmpty(tableValuedFunctionExpression.Schema))
            {
                tableValuedFunctionExpression = new TableValuedFunctionExpression(
                    tableValuedFunctionExpression.Alias,
                    schema: "dbo",
                    tableValuedFunctionExpression.Name,
                    tableValuedFunctionExpression.Arguments);
            }

            return(base.VisitTableValuedFunction(tableValuedFunctionExpression));
        }
        protected override Expression VisitTableValuedFunction(TableValuedFunctionExpression tableValuedFunctionExpression)
        {
            Check.NotNull(tableValuedFunctionExpression, nameof(tableValuedFunctionExpression));

            if (!string.IsNullOrEmpty(tableValuedFunctionExpression.Schema))
            {
                _relationalCommandBuilder
                .Append(_sqlGenerationHelper.DelimitIdentifier(tableValuedFunctionExpression.Schema))
                .Append(".");
            }

            _relationalCommandBuilder
            .Append(_sqlGenerationHelper.DelimitIdentifier(tableValuedFunctionExpression.Name))
            .Append("(");

            GenerateList(tableValuedFunctionExpression.Arguments, e => Visit(e));

            _relationalCommandBuilder
            .Append(")")
            .Append(AliasSeparator)
            .Append(_sqlGenerationHelper.DelimitIdentifier(tableValuedFunctionExpression.Alias));

            return(tableValuedFunctionExpression);
        }
예제 #3
0
 /// <summary>
 ///     Visits the children of the table valued function expression.
 /// </summary>
 /// <param name="tableValuedFunctionExpression"> The expression to visit. </param>
 /// <returns> The modified expression, if it or any subexpression was modified; otherwise, returns the original expression. </returns>
 protected abstract Expression VisitTableValuedFunction([NotNull] TableValuedFunctionExpression tableValuedFunctionExpression);
 protected override Expression VisitTableValuedFunction([NotNullAttribute] TableValuedFunctionExpression tableValuedFunctionExpression)
 {
     throw new NotImplementedException();
 }