/// <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"); } }
/// <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; }