/// <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 VisitConditional(ConditionalExpression conditionalExpression)
        {
            var test    = Visit(conditionalExpression.Test);
            var ifTrue  = Visit(conditionalExpression.IfTrue);
            var ifFalse = Visit(conditionalExpression.IfFalse);

            return(TranslationFailed(conditionalExpression.Test, test, out var sqlTest) ||
                   TranslationFailed(conditionalExpression.IfTrue, ifTrue, out var sqlIfTrue) ||
                   TranslationFailed(conditionalExpression.IfFalse, ifFalse, out var sqlIfFalse)
                ? null
                : _sqlExpressionFactory.Condition(sqlTest, sqlIfTrue, sqlIfFalse));
        }
コード例 #2
0
        protected override Expression VisitConditional(ConditionalExpression conditionalExpression)
        {
            var test    = Visit(conditionalExpression.Test);
            var ifTrue  = Visit(conditionalExpression.IfTrue);
            var ifFalse = Visit(conditionalExpression.IfFalse);

            if (TranslationFailed(conditionalExpression.Test, test) ||
                TranslationFailed(conditionalExpression.IfTrue, ifTrue) ||
                TranslationFailed(conditionalExpression.IfFalse, ifFalse))
            {
                return(null);
            }

            return(_sqlExpressionFactory.Condition((SqlExpression)test, (SqlExpression)ifTrue, (SqlExpression)ifFalse));
        }