From 1672bab14ad0c9e12508c8700811b7c80e901191 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Mon, 26 Jun 2017 23:02:09 +0800 Subject: [PATCH] Update Expression Convert Bug --- Src/Asp.Net/SqlServerTest/Program.cs | 28 +++++++++---------- .../UnitTest/ExpressionTest/Where.cs | 15 ++++++++++ .../ResolveItems/UnaryExpressionResolve.cs | 6 +++- .../SqlSugar/Properties/AssemblyInfo.cs | 4 +-- Src/Asp.Net/SqlSugar/SqlSugar.nuspec | 2 +- 5 files changed, 37 insertions(+), 18 deletions(-) diff --git a/Src/Asp.Net/SqlServerTest/Program.cs b/Src/Asp.Net/SqlServerTest/Program.cs index d31297b78..433ae3520 100644 --- a/Src/Asp.Net/SqlServerTest/Program.cs +++ b/Src/Asp.Net/SqlServerTest/Program.cs @@ -17,22 +17,22 @@ namespace OrmTest { static void Main(string[] args) { - // /***Unit Test***/ - // new Field(1).Init(); - // new Where(1).Init(); - // new Method(1).Init(); - // new JoinQuery(1).Init(); - // new SingleQuery(1).Init(); - // new SelectQuery(1).Init(); - // new AutoClose(1).Init(); - // new Insert(1).Init(); + // /***Unit Test***/ + new Field(1).Init(); + new Where(1).Init(); + new Method(1).Init(); + new JoinQuery(1).Init(); + new SingleQuery(1).Init(); + new SelectQuery(1).Init(); + new AutoClose(1).Init(); + new Insert(1).Init(); new Delete(1).Init(); - // new Update(1).Init(); - // new Mapping(1).Init(); - // new DataTest(1).Init(); + new Update(1).Init(); + new Mapping(1).Init(); + new DataTest(1).Init(); - // /***Performance Test***/ - // new SqlSugarPerformance(100).Select(); + /***Performance Test***/ + new SqlSugarPerformance(100).Select(); /***Demo***/ OrmTest.Demo.Query.Init(); diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/ExpressionTest/Where.cs b/Src/Asp.Net/SqlServerTest/UnitTest/ExpressionTest/Where.cs index fc6f74d56..78d5105b4 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/ExpressionTest/Where.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/ExpressionTest/Where.cs @@ -21,6 +21,7 @@ namespace OrmTest.UnitTest base.Begin(); for (int i = 0; i < base.Count; i++) { + whereSingle15(); whereSingle1(); whereSingle2(); whereSingle3(); @@ -35,6 +36,7 @@ namespace OrmTest.UnitTest whereSingle12(); whereSingle13(); whereSingle14(); + whereSingle15(); WhereMultiple1(); WhereMultiple2(); @@ -249,6 +251,19 @@ namespace OrmTest.UnitTest }, "whereSingle14"); } + + private void whereSingle15() + { + Expression> exp = it =>it.Money2 == 1; + ExpressionContext expContext = new ExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "( [Money2] = @Const0 )", new List() + { + new SugarParameter("@Const0",1) + }, "whereSingle15"); + } } public class WhereConst diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/UnaryExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/UnaryExpressionResolve.cs index a03284aa0..f1244092f 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/UnaryExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/UnaryExpressionResolve.cs @@ -24,7 +24,11 @@ namespace SqlSugar base.Expression = expression.Operand; var isMember = expression.Operand is MemberExpression; var isConst = expression.Operand is ConstantExpression; - if (base.Expression is BinaryExpression || parameter.BaseExpression is BinaryExpression) + if (baseParameter.CurrentExpression is NewArrayExpression) + { + Result(parameter, nodeType); + } + else if (base.Expression is BinaryExpression || parameter.BaseExpression is BinaryExpression || baseParameter.CommonTempData.ObjToString() == CommonTempDataType.Append.ToString()) { Append(parameter, nodeType); } diff --git a/Src/Asp.Net/SqlSugar/Properties/AssemblyInfo.cs b/Src/Asp.Net/SqlSugar/Properties/AssemblyInfo.cs index a0097f8c3..92bb3dbf5 100644 --- a/Src/Asp.Net/SqlSugar/Properties/AssemblyInfo.cs +++ b/Src/Asp.Net/SqlSugar/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("4.1.0.1")] -[assembly: AssemblyFileVersion("4.1.0.1")] +[assembly: AssemblyVersion("4.1.0.2")] +[assembly: AssemblyFileVersion("4.1.0.2")] diff --git a/Src/Asp.Net/SqlSugar/SqlSugar.nuspec b/Src/Asp.Net/SqlSugar/SqlSugar.nuspec index 4b66e06e8..1bfe42d8e 100644 --- a/Src/Asp.Net/SqlSugar/SqlSugar.nuspec +++ b/Src/Asp.Net/SqlSugar/SqlSugar.nuspec @@ -2,7 +2,7 @@ sqlSugar - 4.1.0.1 + 4.1.0.2 SqlSugar SqlServer ORM sun kaixuan landa