This commit is contained in:
sunkaixuan 2017-10-25 14:28:54 +08:00
parent 5f1166a404
commit f9a4522955
2 changed files with 41 additions and 1 deletions

View File

@ -27,6 +27,8 @@ namespace OrmTest.UnitTest
single4();
single5();
single6();
single7();
single8();
Multiple();
Multiple2();
singleDynamic();
@ -35,6 +37,44 @@ namespace OrmTest.UnitTest
base.End("Select Test");
}
private void single7()
{
Expression<Func<DataTestInfo2, DataTestInfo2>> exp =it => new DataTestInfo2() { Bool1=it.Bool1 , Bool2=it.Bool2 };
ExpressionContext expContext = new ExpressionContext();
expContext.IsSingle = false;
expContext.Resolve(exp, ResolveExpressType.SelectSingle);
var selectorValue = expContext.Result.GetString();
var pars = expContext.Parameters;
base.Check(
selectorValue,
pars,
@"[Bool1] AS [Bool1] , [Bool2] AS [Bool2] ",
new List<SugarParameter>()
{
},
"Select.single7 Error");
}
private void single8()
{
Expression<Func<DataTestInfo2, object>> exp = it => new { Bool1 = it.Bool1, Bool2 = it.Bool2 };
ExpressionContext expContext = new ExpressionContext();
expContext.IsSingle = false;
expContext.Resolve(exp, ResolveExpressType.SelectSingle);
var selectorValue = expContext.Result.GetString();
var pars = expContext.Parameters;
base.Check(
selectorValue,
pars,
@"[Bool1] AS [Bool1] , [Bool2] AS [Bool2] ",
new List<SugarParameter>()
{
},
"Select.single8 Error");
}
private void Multiple()
{
Expression<Func<Student, School, object>> exp = (it, school) => new Student() { Name = "a", Id = it.Id, SchoolId = school.Id, TestId = it.Id + 1 };

View File

@ -27,7 +27,7 @@ namespace SqlSugar
var isDateDate = memberName == "Date" && expression.Expression.Type == UtilConstants.DateType;
var isMemberValue = expression.Expression != null && expression.Expression.NodeType != ExpressionType.Parameter && !isValueBool;
var isSingle = parameter.Context.ResolveType == ResolveExpressType.WhereSingle;
var fieldIsBool = isBool && isLogicOperator;
var fieldIsBool = isBool && isLogicOperator&&(parameter.BaseParameter==null||!(parameter.BaseParameter.CurrentExpression is MemberInitExpression|| parameter.BaseParameter.CurrentExpression is NewExpression));
baseParameter.ChildExpression = expression;
if (isLength)
{