mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-12-02 03:13:58 +08:00
Express Bug
This commit is contained in:
@@ -27,8 +27,10 @@ namespace OrmTest.UnitTest
|
|||||||
whereSingle4();
|
whereSingle4();
|
||||||
whereSingle5();
|
whereSingle5();
|
||||||
whereSingle6();
|
whereSingle6();
|
||||||
|
whereSingle7(new Student() { Id = 1 });
|
||||||
WhereMultiple1();
|
WhereMultiple1();
|
||||||
WhereMultiple2();
|
WhereMultiple2();
|
||||||
|
|
||||||
}
|
}
|
||||||
base.End("Where Test");
|
base.End("Where Test");
|
||||||
}
|
}
|
||||||
@@ -137,6 +139,17 @@ namespace OrmTest.UnitTest
|
|||||||
new SugarParameter("@Name3","a1")
|
new SugarParameter("@Name3","a1")
|
||||||
}, "whereSingle6");
|
}, "whereSingle6");
|
||||||
}
|
}
|
||||||
|
private void whereSingle7(Student st)
|
||||||
|
{
|
||||||
|
Expression<Func<Student, bool>> exp = it => it.Id > st.Id;
|
||||||
|
ExpressionContext expContext = new ExpressionContext();
|
||||||
|
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
||||||
|
var value = expContext.Result.GetString();
|
||||||
|
var pars = expContext.Parameters;
|
||||||
|
base.Check(value, pars, "( [Id] > @Id0 )", new List<SugarParameter>() {
|
||||||
|
new SugarParameter("@Id0",1)
|
||||||
|
}, "whereSingle7");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class WhereConst
|
public class WhereConst
|
||||||
|
|||||||
@@ -10,12 +10,24 @@ namespace SqlSugar
|
|||||||
public ExpressionParameter Parameter { get; set; }
|
public ExpressionParameter Parameter { get; set; }
|
||||||
public MemberExpressionResolve(ExpressionParameter parameter) : base(parameter)
|
public MemberExpressionResolve(ExpressionParameter parameter) : base(parameter)
|
||||||
{
|
{
|
||||||
var expression = base.Expression as MemberExpression;
|
|
||||||
var isLeft = parameter.IsLeft;
|
|
||||||
string fieldName = string.Empty;
|
|
||||||
var baseParameter = parameter.BaseParameter;
|
var baseParameter = parameter.BaseParameter;
|
||||||
baseParameter.ChildExpression = expression;
|
var isLeft = parameter.IsLeft;
|
||||||
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.ChildNodeSet);
|
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.ChildNodeSet);
|
||||||
|
var expression = base.Expression as MemberExpression;
|
||||||
|
if (expression.Expression != null&& expression.Expression.NodeType!= ExpressionType.Parameter) {
|
||||||
|
var value= ExpressionTool.GetMemberValue(expression.Member, expression);
|
||||||
|
if (isSetTempData)
|
||||||
|
{
|
||||||
|
baseParameter.CommonTempData = value;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AppendValue(parameter, isLeft, value);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
string fieldName = string.Empty;
|
||||||
|
baseParameter.ChildExpression = expression;
|
||||||
switch (parameter.Context.ResolveType)
|
switch (parameter.Context.ResolveType)
|
||||||
{
|
{
|
||||||
case ResolveExpressType.SelectSingle:
|
case ResolveExpressType.SelectSingle:
|
||||||
|
|||||||
Reference in New Issue
Block a user