Optimization analysis

This commit is contained in:
sunkaixuan
2017-08-13 21:34:29 +08:00
parent 9675f05e81
commit b22f5292e7
2 changed files with 142 additions and 27 deletions

View File

@@ -33,6 +33,8 @@ namespace OrmTest.UnitTest
MappingColumn();
IIF();
IIF2();
IIF3();
IIF4();
#region StringIsNullOrEmpty
HasValue();
HasNumber();
@@ -704,6 +706,38 @@ namespace OrmTest.UnitTest
new SugarParameter("@Const3",1)
}, "IIF2 error");
}
private void IIF3()
{
Expression<Func<Student, bool>> exp = it => SqlFunc.IIF(SqlFunc.Contains(it.Name, "a"), true, false) == true;
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
var value = expContext.Result.GetString();
var pars = expContext.Parameters;
base.Check(value, pars, "(( CASE WHEN ([Name] like '%'+@MethodConst0+'%') THEN @MethodConst1 ELSE @MethodConst2 END ) = @Const3 )", new List<SugarParameter>()
{
new SugarParameter("@MethodConst0","a"),
new SugarParameter("@MethodConst1",true),
new SugarParameter("@MethodConst2",false),
new SugarParameter("@Const3",true)
}, "IIF3 error");
}
private void IIF4()
{
//Expression<Func<DataTestInfo2, bool>> exp = it => SqlFunc.IIF(true, it.Bool1, it.Bool2) == true;
//SqlServerExpressionContext expContext = new SqlServerExpressionContext();
//expContext.Resolve(exp, ResolveExpressType.WhereSingle);
//var value = expContext.Result.GetString();
//var pars = expContext.Parameters;
//base.Check(value, pars, "(( CASE WHEN ([Name] like '%'+@MethodConst0+'%') THEN @MethodConst1 ELSE @MethodConst2 END ) = @Const3 )", new List<SugarParameter>()
//{
// new SugarParameter("@MethodConst0","a"),
// new SugarParameter("@MethodConst1",true),
// new SugarParameter("@MethodConst2",false),
// new SugarParameter("@Const3",true)
//}, "IIF4 error");
}
}
}