mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-11-08 18:34:55 +08:00
-
This commit is contained in:
@@ -24,6 +24,7 @@ namespace OrmTest.ExpressionTest
|
|||||||
StringIsNullOrEmpty();
|
StringIsNullOrEmpty();
|
||||||
StringIsNullOrEmpty2();
|
StringIsNullOrEmpty2();
|
||||||
StringIsNullOrEmpty3();
|
StringIsNullOrEmpty3();
|
||||||
|
StringIsNullOrEmpty4();
|
||||||
}
|
}
|
||||||
base.End("Method Test");
|
base.End("Method Test");
|
||||||
}
|
}
|
||||||
@@ -64,6 +65,20 @@ namespace OrmTest.ExpressionTest
|
|||||||
new SugarParameter("@Id0",2)
|
new SugarParameter("@Id0",2)
|
||||||
}, "StringIsNullOrEmpty3");
|
}, "StringIsNullOrEmpty3");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void StringIsNullOrEmpty4()
|
||||||
|
{
|
||||||
|
WhereConst.name = "xx";
|
||||||
|
Expression<Func<Student, bool>> exp = it => 2 == it.Id || NBORM.IsNullOrEmpty(WhereConst.name); ;
|
||||||
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext(exp, ResolveExpressType.WhereSingle);
|
||||||
|
expContext.Resolve();
|
||||||
|
var value = expContext.Result.GetString();
|
||||||
|
var pars = expContext.Parameters;
|
||||||
|
base.Check(value, pars, "(( @Id0 = Id ) OR ( @MethodCost1='' OR @MethodCost1 IS NULL ))", new List<SugarParameter>() {
|
||||||
|
new SugarParameter("@MethodCost1","xx"),
|
||||||
|
new SugarParameter("@Id0",2)
|
||||||
|
}, "StringIsNullOrEmpty4");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ namespace SqlSugar
|
|||||||
object value = null;
|
object value = null;
|
||||||
var isField = expression.Member is System.Reflection.FieldInfo;
|
var isField = expression.Member is System.Reflection.FieldInfo;
|
||||||
var isProperty = expression.Member is System.Reflection.PropertyInfo;
|
var isProperty = expression.Member is System.Reflection.PropertyInfo;
|
||||||
|
var baseParameter = parameter.BaseParameter;
|
||||||
|
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.ChildNodeSet);
|
||||||
if (isField)
|
if (isField)
|
||||||
{
|
{
|
||||||
value = ExpressionTool.GetFiledValue(expression);
|
value = ExpressionTool.GetFiledValue(expression);
|
||||||
@@ -26,10 +28,15 @@ namespace SqlSugar
|
|||||||
switch (base.Context.ResolveType)
|
switch (base.Context.ResolveType)
|
||||||
{
|
{
|
||||||
case ResolveExpressType.WhereSingle:
|
case ResolveExpressType.WhereSingle:
|
||||||
AppendParameter(parameter, isLeft, value);
|
|
||||||
break;
|
|
||||||
case ResolveExpressType.WhereMultiple:
|
case ResolveExpressType.WhereMultiple:
|
||||||
AppendParameter(parameter, isLeft, value);
|
if (isSetTempData)
|
||||||
|
{
|
||||||
|
baseParameter.CommonTempData = value;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AppendParameter(parameter, isLeft, value);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case ResolveExpressType.SelectSingle:
|
case ResolveExpressType.SelectSingle:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ namespace SqlSugar
|
|||||||
case ResolveExpressType.WhereMultiple:
|
case ResolveExpressType.WhereMultiple:
|
||||||
foreach (var item in args)
|
foreach (var item in args)
|
||||||
{
|
{
|
||||||
|
parameter.CommonTempData = CommonTempDataType.ChildNodeSet;
|
||||||
base.Expression = item;
|
base.Expression = item;
|
||||||
base.Start();
|
base.Start();
|
||||||
var methodCallExpressionArgs = new MethodCallExpressionArgs()
|
var methodCallExpressionArgs = new MethodCallExpressionArgs()
|
||||||
|
|||||||
Reference in New Issue
Block a user