mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-11-08 02:14:53 +08:00
-
This commit is contained in:
@@ -22,6 +22,7 @@ namespace OrmTest.ExpressionTest
|
||||
for (int i = 0; i < base.Count; i++)
|
||||
{
|
||||
StringIsNullOrEmpty();
|
||||
StringIsNullOrEmpty2();
|
||||
}
|
||||
base.End("Method Test");
|
||||
}
|
||||
@@ -34,7 +35,20 @@ namespace OrmTest.ExpressionTest
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(value, pars, "(( Id > @Id0 ) OR ( Id='' OR Id IS NULL ))", new List<SugarParameter>() {
|
||||
new SugarParameter("@Id0",2)
|
||||
}, "whereSingle1");
|
||||
}, "StringIsNullOrEmpty");
|
||||
}
|
||||
|
||||
private void StringIsNullOrEmpty2()
|
||||
{
|
||||
Expression<Func<Student, bool>> exp = it => 2==it.Id || NBORM.IsNullOrEmpty(true); ;
|
||||
SqlServerExpressionContext expContext = new SqlServerExpressionContext(exp, ResolveExpressType.WhereSingle);
|
||||
expContext.Resolve();
|
||||
var value = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(value, pars, "(( Id > @Id0 ) OR ( Id='' OR Id IS NULL ))", new List<SugarParameter>() {
|
||||
new SugarParameter("@Id0",2)
|
||||
}, "StringIsNullOrEmpty2");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -13,17 +13,24 @@ namespace SqlSugar
|
||||
var expression = base.Expression as ConstantExpression;
|
||||
var isLeft = parameter.IsLeft;
|
||||
object value = expression.Value;
|
||||
var baseParameter = parameter.BaseParameter;
|
||||
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.ChildNodeSet);
|
||||
switch (parameter.Context.ResolveType)
|
||||
{
|
||||
case ResolveExpressType.SelectSingle:
|
||||
case ResolveExpressType.SelectMultiple:
|
||||
parameter.BaseParameter.CommonTempData = value;
|
||||
baseParameter.CommonTempData = value;
|
||||
break;
|
||||
case ResolveExpressType.WhereSingle:
|
||||
AppendParameter(parameter, isLeft, value);
|
||||
break;
|
||||
case ResolveExpressType.WhereMultiple:
|
||||
AppendParameter(parameter, isLeft, value);
|
||||
if (isSetTempData)
|
||||
{
|
||||
baseParameter.CommonTempData = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
AppendParameter(parameter, isLeft, value);
|
||||
}
|
||||
break;
|
||||
case ResolveExpressType.FieldSingle:
|
||||
case ResolveExpressType.FieldMultiple:
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace SqlSugar
|
||||
case ResolveExpressType.WhereSingle:
|
||||
case ResolveExpressType.WhereMultiple:
|
||||
base.Expression = expression.Operand;
|
||||
if (base.Expression is MemberExpression)
|
||||
if (base.Expression is MemberExpression|| base.Expression is ConstantExpression)
|
||||
{
|
||||
BaseParameter.ChildExpression = base.Expression;
|
||||
parameter.CommonTempData = CommonTempDataType.ChildNodeSet;
|
||||
|
||||
Reference in New Issue
Block a user