Exemplo n.º 1
0
        /// <summary>
        /// Returns the name of the function as it is defined in the target DBMS.
        /// </summary>
        /// <param name="stringFunctionExpressionType">The <see cref="DbStringFunctionExpressionType"/> that specifies the function name to return.</param>
        /// <returns><see cref="string"/></returns>
        protected virtual string GetStringFunctionBody(DbStringFunctionExpressionType stringFunctionExpressionType)
        {
            switch (stringFunctionExpressionType)
            {
            case DbStringFunctionExpressionType.Length:
                return("LEN({0})");

            case DbStringFunctionExpressionType.Replace:
                return("REPLACE({0})");

            case DbStringFunctionExpressionType.Reverse:
                return("REVERSE({0})");

            case DbStringFunctionExpressionType.ToLower:
                return("LOWER({0})");

            case DbStringFunctionExpressionType.ToUpper:
                return("UPPER({0})");

            case DbStringFunctionExpressionType.Trim:
                return("LTRIM(RTRIM({0}))");

            case DbStringFunctionExpressionType.TrimStart:
                return("LTRIM({0})");

            case DbStringFunctionExpressionType.TrimEnd:
                return("RTRIM({0})");

            case DbStringFunctionExpressionType.SoundEx:
                return("SOUNDEX({0})");

            case DbStringFunctionExpressionType.SubString:
                return("SUBSTR({0})");

            default:
                throw new ArgumentOutOfRangeException("stringFunctionExpressionType", stringFunctionExpressionType, " is not supported");
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DbStringFunctionExpression"/> class.
 /// </summary>
 /// <param name="stringFunctionExpressionType">The <see cref="DbStringFunctionExpressionType"/> of the <see cref="DbStringFunctionExpression"/>.</param>
 /// <param name="arguments">The arguments used when calling the function.</param>
 internal DbStringFunctionExpression(DbStringFunctionExpressionType stringFunctionExpressionType, DbExpression[] arguments) : base(DbFunctionExpressionType.String, arguments)
 {
     StringFunctionExpressionType = stringFunctionExpressionType;
 }
 private void ValidateStringFunctionExpression(DbStringFunctionExpression stringFunctionExpression, DbStringFunctionExpressionType stringFunctionExpressionType)
 {
     Assert.IsTrue(stringFunctionExpression.ExpressionType == DbExpressionType.Function);
     Assert.IsTrue(stringFunctionExpression.StringFunctionExpressionType == stringFunctionExpressionType);
     Assert.IsNotNull(stringFunctionExpression.Arguments);
     Assert.IsTrue(stringFunctionExpression.Arguments.Length > 0);
 }
 private void ValidateStringFunctionExpression(DbStringFunctionExpression stringFunctionExpression, DbStringFunctionExpressionType stringFunctionExpressionType)
 {
     Assert.IsTrue(stringFunctionExpression.ExpressionType == DbExpressionType.Function);
     Assert.IsTrue(stringFunctionExpression.StringFunctionExpressionType == stringFunctionExpressionType);
     Assert.IsNotNull(stringFunctionExpression.Arguments);
     Assert.IsTrue(stringFunctionExpression.Arguments.Length > 0);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="DbStringFunctionExpression"/> class.
 /// </summary>
 /// <param name="stringFunctionExpressionType">The <see cref="DbStringFunctionExpressionType"/> of the <see cref="DbStringFunctionExpression"/>.</param>
 /// <param name="arguments">The arguments used when calling the function.</param>
 internal DbStringFunctionExpression(DbStringFunctionExpressionType stringFunctionExpressionType, DbExpression[] arguments)
     : base(DbFunctionExpressionType.String, arguments)
 {
     StringFunctionExpressionType = stringFunctionExpressionType;
 }
 /// <summary>
 /// Returns the name of the function as it is defined in the target DBMS.
 /// </summary>
 /// <param name="stringFunctionExpressionType">The <see cref="DbStringFunctionExpressionType"/> that specifies the function name to return.</param>
 /// <returns><see cref="string"/></returns>
 protected virtual string GetStringFunctionBody(DbStringFunctionExpressionType stringFunctionExpressionType)
 {
     switch (stringFunctionExpressionType)
     {
         case DbStringFunctionExpressionType.Length:
             return "LENGTH({0})";
         case DbStringFunctionExpressionType.Replace:
             return "REPLACE({0})";
         case DbStringFunctionExpressionType.Reverse:
             return "REVERSE({0})";
         case DbStringFunctionExpressionType.ToLower:
             return "LOWER({0})";
         case DbStringFunctionExpressionType.ToUpper:
             return "UPPER({0})";
         case DbStringFunctionExpressionType.Trim:
             return "TRIM({0})";
         case DbStringFunctionExpressionType.TrimStart:
             return "LTRIM({0})";
         case DbStringFunctionExpressionType.TrimEnd:
             return "RTRIM({0})";
         case DbStringFunctionExpressionType.SoundEx:
             return "SOUNDEX({0})";
         case DbStringFunctionExpressionType.SubString:
             return "SUBSTR({0})";
         default:
             throw new ArgumentOutOfRangeException("stringFunctionExpressionType", stringFunctionExpressionType, " is not supported");
     }
 }
 /// <summary>
 /// Creates a new <see cref="DbStringFunctionExpression"/>.
 /// </summary>
 /// <param name="stringFunctionExpressionType">The <see cref="DbStringFunctionExpressionType"/> that specifies the type of <see cref="DbStringFunctionExpression"/> to create.</param>
 /// <param name="arguments">A list of <see cref="DbExpression"/> instances that is used as arguments when calling the function.</param>
 /// <returns>A <see cref="DbStringFunctionExpression"/> instance.</returns>
 public DbStringFunctionExpression MakeStringFunction(DbStringFunctionExpressionType stringFunctionExpressionType, DbExpression[] arguments)
 {
     var stringFunctionExpression = new DbStringFunctionExpression(stringFunctionExpressionType, arguments);
     return stringFunctionExpression;
 }