Exemplo n.º 1
0
        /// <inheritdoc />
        protected override Expression VisitDistinctSql(DistinctSqlExpression distinctSqlExpression)
        {
            Check.NotNull(distinctSqlExpression, nameof(distinctSqlExpression));

            _relationalCommandBuilder.Append("DISTINCT (");
            Visit(distinctSqlExpression.Operand);
            _relationalCommandBuilder.Append(")");

            return(distinctSqlExpression);
        }
Exemplo n.º 2
0
        /// <inheritdoc />
        public virtual SqlExpression ApplyTypeMapping(SqlExpression sqlExpression, RelationalTypeMapping typeMapping)
        {
#pragma warning disable IDE0046 // Convert to conditional expression
            if (sqlExpression == null
#pragma warning restore IDE0046 // Convert to conditional expression
                || sqlExpression.TypeMapping != null)
            {
                return(sqlExpression);
            }

            return(sqlExpression switch
            {
                CaseExpression e => ApplyTypeMappingOnCase(e, typeMapping),
                CollateExpression e => ApplyTypeMappingOnCollate(e, typeMapping),
                DistinctSqlExpression e => ApplyTypeMappingOnDistinctSql(e, typeMapping),
                LikeExpression e => ApplyTypeMappingOnLike(e),
                SqlBinaryExpression e => ApplyTypeMappingOnSqlBinary(e, typeMapping),
                SqlUnaryExpression e => ApplyTypeMappingOnSqlUnary(e, typeMapping),
                SqlConstantExpression e => e.ApplyTypeMapping(typeMapping),
                SqlFragmentExpression e => e,
                SqlFunctionExpression e => e.ApplyTypeMapping(typeMapping),
                SqlParameterExpression e => e.ApplyTypeMapping(typeMapping),
                _ => sqlExpression
            });
Exemplo n.º 3
0
 /// <summary>
 ///     Visits the children of the distinct SQL expression.
 /// </summary>
 /// <param name="distinctSqlExpression"> 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 VisitDistinctSql([NotNull] DistinctSqlExpression distinctSqlExpression);