mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-11-08 18:34:55 +08:00
-
This commit is contained in:
@@ -27,6 +27,7 @@ namespace OrmTest.ExpressionTest
|
|||||||
StringIsNullOrEmpty3();
|
StringIsNullOrEmpty3();
|
||||||
StringIsNullOrEmpty4();
|
StringIsNullOrEmpty4();
|
||||||
ToUpper();
|
ToUpper();
|
||||||
|
ToLower();
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
base.End("Method Test");
|
base.End("Method Test");
|
||||||
@@ -34,15 +35,26 @@ namespace OrmTest.ExpressionTest
|
|||||||
|
|
||||||
private void ToUpper()
|
private void ToUpper()
|
||||||
{
|
{
|
||||||
Expression<Func<Student, bool>> exp = it =>"a"== NBORM.ToLower(it.Id) ;
|
Expression<Func<Student, bool>> exp = it =>"a"== NBORM.ToUpper(it.Id) ;
|
||||||
SqlServerExpressionContext expContext = new SqlServerExpressionContext(exp, ResolveExpressType.WhereSingle);
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext(exp, ResolveExpressType.WhereSingle);
|
||||||
expContext.Resolve();
|
expContext.Resolve();
|
||||||
var value = expContext.Result.GetString();
|
var value = expContext.Result.GetString();
|
||||||
var pars = expContext.Parameters;
|
var pars = expContext.Parameters;
|
||||||
base.Check(value, pars, "(( Id > @Id0 ) OR ( Id='' OR Id IS NULL ))", new List<SugarParameter>() {
|
base.Check(value, pars, "( @Const0 = (UPPER(Id)) )", new List<SugarParameter>() {
|
||||||
new SugarParameter("@Id0",2)
|
new SugarParameter("@Const0","a")
|
||||||
}, "ToUpper");
|
}, "ToUpper");
|
||||||
}
|
}
|
||||||
|
private void ToLower()
|
||||||
|
{
|
||||||
|
Expression<Func<Student, bool>> exp = it => "a" == NBORM.ToLower(it.Id);
|
||||||
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext(exp, ResolveExpressType.WhereSingle);
|
||||||
|
expContext.Resolve();
|
||||||
|
var value = expContext.Result.GetString();
|
||||||
|
var pars = expContext.Parameters;
|
||||||
|
base.Check(value, pars, "( @Const0 = (LOWER(Id)) )", new List<SugarParameter>() {
|
||||||
|
new SugarParameter("@Const0","a")
|
||||||
|
}, "ToLower");
|
||||||
|
}
|
||||||
|
|
||||||
#region StringIsNullOrEmpty
|
#region StringIsNullOrEmpty
|
||||||
private void StringIsNullOrEmpty()
|
private void StringIsNullOrEmpty()
|
||||||
@@ -63,8 +75,8 @@ namespace OrmTest.ExpressionTest
|
|||||||
expContext.Resolve();
|
expContext.Resolve();
|
||||||
var value = expContext.Result.GetString();
|
var value = expContext.Result.GetString();
|
||||||
var pars = expContext.Parameters;
|
var pars = expContext.Parameters;
|
||||||
base.Check(value, pars, "(( @Id0 = Id ) OR ( @MethodCost1='' OR @MethodCost1 IS NULL ))", new List<SugarParameter>() {
|
base.Check(value, pars, "(( @Id0 = Id ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))", new List<SugarParameter>() {
|
||||||
new SugarParameter("@MethodCost1",true),
|
new SugarParameter("@MethodConst1",true),
|
||||||
new SugarParameter("@Id0",2)
|
new SugarParameter("@Id0",2)
|
||||||
}, "StringIsNullOrEmpty2");
|
}, "StringIsNullOrEmpty2");
|
||||||
}
|
}
|
||||||
@@ -76,8 +88,8 @@ namespace OrmTest.ExpressionTest
|
|||||||
expContext.Resolve();
|
expContext.Resolve();
|
||||||
var value = expContext.Result.GetString();
|
var value = expContext.Result.GetString();
|
||||||
var pars = expContext.Parameters;
|
var pars = expContext.Parameters;
|
||||||
base.Check(value, pars, "(( @Id0 = Id ) OR ( @MethodCost1='' OR @MethodCost1 IS NULL ))", new List<SugarParameter>() {
|
base.Check(value, pars, "(( @Id0 = Id ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))", new List<SugarParameter>() {
|
||||||
new SugarParameter("@MethodCost1",1),
|
new SugarParameter("@MethodConst1",1),
|
||||||
new SugarParameter("@Id0",2)
|
new SugarParameter("@Id0",2)
|
||||||
}, "StringIsNullOrEmpty3");
|
}, "StringIsNullOrEmpty3");
|
||||||
}
|
}
|
||||||
@@ -89,8 +101,8 @@ namespace OrmTest.ExpressionTest
|
|||||||
expContext.Resolve();
|
expContext.Resolve();
|
||||||
var value = expContext.Result.GetString();
|
var value = expContext.Result.GetString();
|
||||||
var pars = expContext.Parameters;
|
var pars = expContext.Parameters;
|
||||||
base.Check(value, pars, "(( @Id0 = Id ) OR ( @MethodCost1='' OR @MethodCost1 IS NULL ))", new List<SugarParameter>() {
|
base.Check(value, pars, "(( @Id0 = Id ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))", new List<SugarParameter>() {
|
||||||
new SugarParameter("@MethodCost1","xx"),
|
new SugarParameter("@MethodConst1","xx"),
|
||||||
new SugarParameter("@Id0",2)
|
new SugarParameter("@Id0",2)
|
||||||
}, "StringIsNullOrEmpty4");
|
}, "StringIsNullOrEmpty4");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ namespace SqlSugar
|
|||||||
public const string Format3 = "(";
|
public const string Format3 = "(";
|
||||||
public const string Format4 = ")";
|
public const string Format4 = ")";
|
||||||
public const string NBORMFULLNAME = "SqlSugar.NBORM";
|
public const string NBORMFULLNAME = "SqlSugar.NBORM";
|
||||||
public const string METHODCOST = "MethodCost";
|
public const string METHODCONST = "MethodConst";
|
||||||
|
public const string CONST = "Const";
|
||||||
public readonly static Type MemberExpressionType = typeof(MemberExpression);
|
public readonly static Type MemberExpressionType = typeof(MemberExpression);
|
||||||
public readonly static Type ConstantExpressionType = typeof(ConstantExpression);
|
public readonly static Type ConstantExpressionType = typeof(ConstantExpression);
|
||||||
public readonly static Type StringType = typeof(string);
|
public readonly static Type StringType = typeof(string);
|
||||||
|
|||||||
@@ -13,13 +13,13 @@ namespace SqlSugar
|
|||||||
return string.Format("( {0}='' OR {0} IS NULL )", parameter.Value);
|
return string.Format("( {0}='' OR {0} IS NULL )", parameter.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public object ToUpper(MethodCallExpressionModel model)
|
public virtual object ToUpper(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
var parameter = model.Args[0];
|
var parameter = model.Args[0];
|
||||||
return string.Format(" (UPPER({0})) ", parameter.Value);
|
return string.Format(" (UPPER({0})) ", parameter.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public object ToLower(MethodCallExpressionModel model)
|
public virtual object ToLower(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
var parameter = model.Args[0];
|
var parameter = model.Args[0];
|
||||||
return string.Format(" (LOWER({0})) ", parameter.Value);
|
return string.Format(" (LOWER({0})) ", parameter.Value);
|
||||||
|
|||||||
@@ -126,7 +126,22 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
var parameterName =this.Context.SqlParameterKeyWord+ExpressionConst.CONST +Context.ParameterIndex;
|
||||||
|
Context.ParameterIndex++;
|
||||||
|
this.Context.Parameters.Add(new SugarParameter(parameterName,value));
|
||||||
|
parameterName = string.Format(" {0} ", parameterName);
|
||||||
|
if (isLeft == true)
|
||||||
|
{
|
||||||
|
parameterName += ExpressionConst.Format1 + parameter.BaseParameter.Index;
|
||||||
|
}
|
||||||
|
if (this.Context.Result.Contains(ExpressionConst.Format0))
|
||||||
|
{
|
||||||
|
this.Context.Result.Replace(ExpressionConst.Format0, parameterName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.Context.Result.Append(parameterName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
AppendParameter(parameter, isLeft, value);
|
AppendParameter(parameter, isLeft, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case ResolveExpressType.FieldSingle:
|
case ResolveExpressType.FieldSingle:
|
||||||
case ResolveExpressType.FieldMultiple:
|
case ResolveExpressType.FieldMultiple:
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
if (methodCallExpressionArgs.IsMember == false)
|
if (methodCallExpressionArgs.IsMember == false)
|
||||||
{
|
{
|
||||||
var parameterName = this.Context.SqlParameterKeyWord + ExpressionConst.METHODCOST + this.Context.ParameterIndex;
|
var parameterName = this.Context.SqlParameterKeyWord + ExpressionConst.METHODCONST + this.Context.ParameterIndex;
|
||||||
this.Context.ParameterIndex++;
|
this.Context.ParameterIndex++;
|
||||||
methodCallExpressionArgs.Value = parameterName;
|
methodCallExpressionArgs.Value = parameterName;
|
||||||
this.Context.Parameters.Add(new SugarParameter(parameterName, value));
|
this.Context.Parameters.Add(new SugarParameter(parameterName, value));
|
||||||
@@ -69,6 +69,8 @@ namespace SqlSugar
|
|||||||
return this.Context.DbMehtods.IsNullOrEmpty(model);
|
return this.Context.DbMehtods.IsNullOrEmpty(model);
|
||||||
case "ToLower":
|
case "ToLower":
|
||||||
return this.Context.DbMehtods.ToLower(model);
|
return this.Context.DbMehtods.ToLower(model);
|
||||||
|
case "ToUpper":
|
||||||
|
return this.Context.DbMehtods.ToUpper(model);
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user