Ejemplo n.º 1
0
        private SqlExpression ApplyTypeMappingOnRegexp(MySqlRegexpExpression regexpExpression)
        {
            var inferredTypeMapping = ExpressionExtensions.InferTypeMapping(regexpExpression.Match)
                                      ?? _typeMappingSource.FindMapping(regexpExpression.Match.Type);

            return(new MySqlRegexpExpression(
                       ApplyTypeMapping(regexpExpression.Match, inferredTypeMapping),
                       ApplyTypeMapping(regexpExpression.Pattern, inferredTypeMapping),
                       _boolTypeMapping));
        }
Ejemplo n.º 2
0
        public virtual Expression VisitMySqlRegexp(MySqlRegexpExpression mySqlRegexpExpression)
        {
            Check.NotNull(mySqlRegexpExpression, nameof(mySqlRegexpExpression));

            Visit(mySqlRegexpExpression.Match);
            Sql.Append(" REGEXP ");
            Visit(mySqlRegexpExpression.Pattern);

            return(mySqlRegexpExpression);
        }
 private SqlExpression ApplyNewTypeMapping(SqlExpression sqlExpression, RelationalTypeMapping typeMapping)
 {
     return(sqlExpression switch
     {
         MySqlComplexFunctionArgumentExpression e => ApplyTypeMappingOnComplexFunctionArgument(e),
         MySqlCollateExpression e => ApplyTypeMappingOnCollate(e),
         MySqlRegexpExpression e => ApplyTypeMappingOnRegexp(e),
         MySqlBinaryExpression e => ApplyTypeMappingOnMySqlBinary(e, typeMapping),
         MySqlMatchExpression e => ApplyTypeMappingOnMatch(e),
         MySqlJsonArrayIndexExpression e => e.ApplyTypeMapping(typeMapping),
         _ => base.ApplyTypeMapping(sqlExpression, typeMapping)
     });