mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-24 18:04:52 +08:00
-
This commit is contained in:
parent
ba927808bf
commit
6e4eb974a6
Binary file not shown.
@ -27,9 +27,21 @@ namespace OrmTest.ExpressionTest
|
||||
whereSingle4();
|
||||
whereSingle5();
|
||||
whereSingle6();
|
||||
WhereMultiple1();
|
||||
}
|
||||
base.End("Where Test");
|
||||
}
|
||||
private void WhereMultiple1()
|
||||
{
|
||||
Expression<Func<Student, bool>> exp = it => it.Id > 1;
|
||||
ExpressionContext expContext = new ExpressionContext(exp, ResolveExpressType.WhereMultiple);
|
||||
expContext.Resolve();
|
||||
var value = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(value, pars, "( it.Id > @Id0 )", new List<SugarParameter>() {
|
||||
new SugarParameter("@Id0",1)
|
||||
}, "WhereMultiple1");
|
||||
}
|
||||
private void whereSingle1()
|
||||
{
|
||||
Expression<Func<Student, bool>> exp = it => it.Id > 1;
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -25,30 +25,11 @@ namespace SqlSugar
|
||||
break;
|
||||
case ResolveExpressType.WhereSingle:
|
||||
fieldName = getSingleName(parameter, expression, isLeft);
|
||||
if (parameter.BaseExpression is BinaryExpression)
|
||||
{
|
||||
fieldName = string.Format(" {0} ", fieldName);
|
||||
if (isLeft == true)
|
||||
{
|
||||
fieldName += ExpressionConst.Format1 + parameter.BaseParameter.Index;
|
||||
}
|
||||
if (base.Context.Result.Contains(ExpressionConst.Format0))
|
||||
{
|
||||
base.Context.Result.Replace(ExpressionConst.Format0, fieldName);
|
||||
}
|
||||
else
|
||||
{
|
||||
base.Context.Result.Append(fieldName);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
base.Context.Result.Append(fieldName);
|
||||
}
|
||||
fieldName = AppendMember(parameter, isLeft, fieldName);
|
||||
break;
|
||||
case ResolveExpressType.WhereMultiple:
|
||||
fieldName = getMultipleName(parameter, expression, isLeft);
|
||||
base.Context.Result.Append(fieldName);
|
||||
fieldName = AppendMember(parameter, isLeft, fieldName);
|
||||
break;
|
||||
case ResolveExpressType.FieldSingle:
|
||||
fieldName = getSingleName(parameter, expression, isLeft);
|
||||
@ -63,6 +44,32 @@ namespace SqlSugar
|
||||
}
|
||||
}
|
||||
|
||||
private string AppendMember(ExpressionParameter parameter, bool? isLeft, string fieldName)
|
||||
{
|
||||
if (parameter.BaseExpression is BinaryExpression)
|
||||
{
|
||||
fieldName = string.Format(" {0} ", fieldName);
|
||||
if (isLeft == true)
|
||||
{
|
||||
fieldName += ExpressionConst.Format1 + parameter.BaseParameter.Index;
|
||||
}
|
||||
if (base.Context.Result.Contains(ExpressionConst.Format0))
|
||||
{
|
||||
base.Context.Result.Replace(ExpressionConst.Format0, fieldName);
|
||||
}
|
||||
else
|
||||
{
|
||||
base.Context.Result.Append(fieldName);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
base.Context.Result.Append(fieldName);
|
||||
}
|
||||
|
||||
return fieldName;
|
||||
}
|
||||
|
||||
private string getMultipleName(ExpressionParameter parameter, MemberExpression expression, bool? isLeft)
|
||||
{
|
||||
string shortName = expression.Expression.ToString();
|
||||
|
Loading…
Reference in New Issue
Block a user