示例#1
0
 protected string HandleStringComparison(string col, string val, string verb, TextColumnType columnType)
 {
     switch (verb)
     {
         case "SqlWildcard":
             return SqlSyntaxContext.SqlSyntaxProvider.GetStringColumnWildcardComparison(col, RemoveQuote(val), columnType);
         case "Equals":
             return SqlSyntaxContext.SqlSyntaxProvider.GetStringColumnEqualComparison(col, RemoveQuote(val), columnType);
         case "StartsWith":
             return SqlSyntaxContext.SqlSyntaxProvider.GetStringColumnStartsWithComparison(col, RemoveQuote(val), columnType);
         case "EndsWith":
             return SqlSyntaxContext.SqlSyntaxProvider.GetStringColumnEndsWithComparison(col, RemoveQuote(val), columnType);
         case "Contains":
             return SqlSyntaxContext.SqlSyntaxProvider.GetStringColumnContainsComparison(col, RemoveQuote(val), columnType);
         case "InvariantEquals":
         case "SqlEquals":
             //recurse
             return HandleStringComparison(col, val, "Equals", columnType);
         case "InvariantStartsWith":
         case "SqlStartsWith":
             //recurse
             return HandleStringComparison(col, val, "StartsWith", columnType);
         case "InvariantEndsWith":
         case "SqlEndsWith":
             //recurse
             return HandleStringComparison(col, val, "EndsWith", columnType);
         case "InvariantContains":
         case "SqlContains":
             //recurse
             return HandleStringComparison(col, val, "Contains", columnType);
         default:
             throw new ArgumentOutOfRangeException("verb");
     }
 }
示例#2
0
        public static bool SqlWildcard(this string str, string txt, TextColumnType columnType)
        {
            var wildcardmatch = new Regex("^" + Regex.Escape(txt).
                                          //deal with any wildcard chars %
                                          Replace(@"\%", ".*") + "$");

            return(wildcardmatch.IsMatch(str));
        }
示例#3
0
        private string HandleStringComparison(string col, string val, string verb, TextColumnType columnType)
        {
            switch (verb)
            {
            case "SqlWildcard":
                return(SqlSyntaxContext.SqlSyntaxProvider.GetStringColumnWildcardComparison(col, EscapeAtArgument(RemoveQuote(val)), columnType));

            case "Equals":
                return(SqlSyntaxContext.SqlSyntaxProvider.GetStringColumnEqualComparison(col, EscapeAtArgument(RemoveQuote(val)), columnType));

            case "StartsWith":
                return(SqlSyntaxContext.SqlSyntaxProvider.GetStringColumnStartsWithComparison(col, EscapeAtArgument(RemoveQuote(val)), columnType));

            case "EndsWith":
                return(SqlSyntaxContext.SqlSyntaxProvider.GetStringColumnEndsWithComparison(col, EscapeAtArgument(RemoveQuote(val)), columnType));

            case "Contains":
                return(SqlSyntaxContext.SqlSyntaxProvider.GetStringColumnContainsComparison(col, EscapeAtArgument(RemoveQuote(val)), columnType));

            case "InvariantEquals":
            case "SqlEquals":
                //recurse
                return(HandleStringComparison(col, val, "Equals", columnType));

            case "InvariantStartsWith":
            case "SqlStartsWith":
                //recurse
                return(HandleStringComparison(col, val, "StartsWith", columnType));

            case "InvariantEndsWith":
            case "SqlEndsWith":
                //recurse
                return(HandleStringComparison(col, val, "EndsWith", columnType));

            case "InvariantContains":
            case "SqlContains":
                //recurse
                return(HandleStringComparison(col, val, "Contains", columnType));

            default:
                throw new ArgumentOutOfRangeException("verb");
            }
        }
 public virtual string GetStringColumnWildcardComparison(string column, int paramIndex, TextColumnType columnType)
 {
     //use the 'upper' method to always ensure strings are matched without case sensitivity no matter what the db setting.
     return($"upper({column}) LIKE upper(@{paramIndex})");
 }
示例#5
0
        public override string GetStringColumnWildcardComparison(string column, int paramIndex, TextColumnType columnType)
        {
            switch (columnType)
            {
            case TextColumnType.NVarchar:
                return(base.GetStringColumnWildcardComparison(column, paramIndex, columnType));

            case TextColumnType.NText:
                //MSSQL doesn't allow for upper methods with NText columns
                return($"{column} LIKE @{paramIndex}");

            default:
                throw new ArgumentOutOfRangeException(nameof(columnType));
            }
        }
 public virtual string GetStringColumnWildcardComparison(string column, string value, TextColumnType columnType)
 {
     //use the 'upper' method to always ensure strings are matched without case sensitivity no matter what the db setting.
     return(string.Format("upper({0}) LIKE '{1}'", column, value.ToUpper()));
 }
 public virtual string GetStringColumnEqualComparison(string column, int paramIndex, TextColumnType columnType)
 {
     //use the 'upper' method to always ensure strings are matched without case sensitivity no matter what the db setting.
     return(string.Format("upper({0}) = upper(@{1})", column, paramIndex));
 }
示例#8
0
 public static bool SqlEndsWith(this string str, string txt, TextColumnType columnType) => str.InvariantEndsWith(txt);
示例#9
0
#pragma warning disable IDE0060 // Remove unused parameter
        public static bool SqlContains(this string str, string txt, TextColumnType columnType) => str.InvariantContains(txt);
 public static bool SqlStartsWith(this string str, string txt, TextColumnType columnType)
 {
     return(str.InvariantStartsWith(txt));
 }
 public static bool SqlEquals(this string str, string txt, TextColumnType columnType)
 {
     return(str.InvariantEquals(txt));
 }
        public override string GetStringColumnEqualComparison(string column, string value, TextColumnType columnType)
        {
            switch (columnType)
            {
            case TextColumnType.NVarchar:
                return(base.GetStringColumnEqualComparison(column, value, columnType));

            case TextColumnType.NText:
                //MSSQL doesn't allow for = comparison with NText columns but allows this syntax
                return(string.Format("{0} LIKE '{1}'", column, value));

            default:
                throw new ArgumentOutOfRangeException("columnType");
            }
        }
        public override string GetStringColumnEndsWithComparison(string column, string value, TextColumnType columnType)
        {
            switch (columnType)
            {
            case TextColumnType.NVarchar:
                return(base.GetStringColumnEndsWithComparison(column, value, columnType));

            case TextColumnType.NText:
                //MSSQL doesn't allow for upper methods with NText columns
                return(string.Format("{0} LIKE '%{1}'", column, value));

            default:
                throw new ArgumentOutOfRangeException("columnType");
            }
        }
    public virtual string GetStringColumnEqualComparison(string column, int paramIndex, TextColumnType columnType) =>

    // use the 'upper' method to always ensure strings are matched without case sensitivity no matter what the db setting.
    $"upper({column}) = upper(@{paramIndex})";
 public static bool SqlStartsWith(this string? str, string txt, TextColumnType columnType) => str?.InvariantStartsWith(txt) ?? false;
        protected string HandleStringComparison(string col, string val, string verb, TextColumnType columnType)
        {
            switch (verb)
            {
            case "SqlWildcard":
                SqlParameters.Add(RemoveQuote(val));
                //don't execute if compiled
                if (Visited == false)
                {
                    return(SqlSyntax.GetStringColumnWildcardComparison(col, SqlParameters.Count - 1, columnType));
                }
                //already compiled, return
                return(string.Empty);

            case "Equals":
                SqlParameters.Add(RemoveQuote(val));
                //don't execute if compiled
                if (Visited == false)
                {
                    return(SqlSyntax.GetStringColumnEqualComparison(col, SqlParameters.Count - 1, columnType));
                }
                //already compiled, return
                return(string.Empty);

            case "StartsWith":
                SqlParameters.Add(string.Format("{0}{1}",
                                                RemoveQuote(val),
                                                SqlSyntax.GetWildcardPlaceholder()));
                //don't execute if compiled
                if (Visited == false)
                {
                    return(SqlSyntax.GetStringColumnWildcardComparison(col, SqlParameters.Count - 1, columnType));
                }
                //already compiled, return
                return(string.Empty);

            case "EndsWith":
                SqlParameters.Add(string.Format("{0}{1}",
                                                SqlSyntax.GetWildcardPlaceholder(),
                                                RemoveQuote(val)));
                //don't execute if compiled
                if (Visited == false)
                {
                    return(SqlSyntax.GetStringColumnWildcardComparison(col, SqlParameters.Count - 1, columnType));
                }
                //already compiled, return
                return(string.Empty);

            case "Contains":
                SqlParameters.Add(string.Format("{0}{1}{0}",
                                                SqlSyntax.GetWildcardPlaceholder(),
                                                RemoveQuote(val)));
                //don't execute if compiled
                if (Visited == false)
                {
                    return(SqlSyntax.GetStringColumnWildcardComparison(col, SqlParameters.Count - 1, columnType));
                }
                //already compiled, return
                return(string.Empty);

            case "InvariantEquals":
            case "SqlEquals":
                //recurse
                return(HandleStringComparison(col, val, "Equals", columnType));

            case "InvariantStartsWith":
            case "SqlStartsWith":
                //recurse
                return(HandleStringComparison(col, val, "StartsWith", columnType));

            case "InvariantEndsWith":
            case "SqlEndsWith":
                //recurse
                return(HandleStringComparison(col, val, "EndsWith", columnType));

            case "InvariantContains":
            case "SqlContains":
                //recurse
                return(HandleStringComparison(col, val, "Contains", columnType));

            default:
                throw new ArgumentOutOfRangeException("verb");
            }
        }