diff --git a/Src/Asp.Net/MySqlTest/Demos/1_Query.cs b/Src/Asp.Net/MySqlTest/Demos/1_Query.cs index 08481165f..d49c90dd2 100644 --- a/Src/Asp.Net/MySqlTest/Demos/1_Query.cs +++ b/Src/Asp.Net/MySqlTest/Demos/1_Query.cs @@ -153,6 +153,7 @@ namespace OrmTest.Demo { var db = GetInstance(); var getAll = db.Queryable().ToList(); + var getLike = db.Queryable().Where(it => it.Name.Contains("a")).ToList(); var getAllOrder = db.Queryable().OrderBy(it => it.Id).OrderBy(it => it.Name, OrderByType.Desc).ToList(); var getId = db.Queryable().Select(it => it.Id).ToList(); var getNew = db.Queryable().Where(it => it.Id == 1).Select(it => new { id = SqlFunc.IIF(it.Id == 0, 1, it.Id), it.Name, it.SchoolId }).ToList(); diff --git a/Src/Asp.Net/MySqlTest/Program.cs b/Src/Asp.Net/MySqlTest/Program.cs index 8ec4fd083..090c0e9c7 100644 --- a/Src/Asp.Net/MySqlTest/Program.cs +++ b/Src/Asp.Net/MySqlTest/Program.cs @@ -20,7 +20,7 @@ namespace OrmTest // /***Unit Test***/ new Field(1).Init(); new Where(1).Init(); - // new Method(1).Init(); + new Method(1).Init(); // new JoinQuery(1).Init(); // new SingleQuery(1).Init(); // new SelectQuery(1).Init(); diff --git a/Src/Asp.Net/MySqlTest/UnitTest/ExpressionTest/Method.cs b/Src/Asp.Net/MySqlTest/UnitTest/ExpressionTest/Method.cs index ed5914b6f..8fa6f7b38 100644 --- a/Src/Asp.Net/MySqlTest/UnitTest/ExpressionTest/Method.cs +++ b/Src/Asp.Net/MySqlTest/UnitTest/ExpressionTest/Method.cs @@ -75,11 +75,11 @@ namespace OrmTest.UnitTest private void ExtendToString() { Expression> exp = it => it.Id.ToString() == "a"; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(CAST(`Id` AS NVARCHAR(MAX)) = @Const0 )", new List() { + base.Check(value, pars, "(CAST(`Id` AS CHAR) = @Const0 )", new List() { new SugarParameter("@Const0","a") }, "ExtendToString error"); } @@ -87,11 +87,11 @@ namespace OrmTest.UnitTest private void ConvetToString() { Expression> exp = it => Convert.ToString(it.Id) == "a"; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(CAST(`Id` AS NVARCHAR(MAX)) = @Const0 )", new List() { + base.Check(value, pars, "(CAST(`Id` AS CHAR) = @Const0 )", new List() { new SugarParameter("@Const0","a") }, "ConvetToString error"); } @@ -100,11 +100,11 @@ namespace OrmTest.UnitTest private void Length() { Expression> exp = it => SqlFunc.Length("aaaa") > 1; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(LEN(@MethodConst0) > @Const1 )", new List() { + base.Check(value, pars, "(LENGTH(@MethodConst0) > @Const1 )", new List() { new SugarParameter("@MethodConst0","aaaa"),new SugarParameter("@Const1",1) }, "Length error"); } @@ -113,7 +113,7 @@ namespace OrmTest.UnitTest { var x2 = Guid.NewGuid(); Expression> exp = it => SqlFunc.Replace("aaaa", "a", "1") == "a"; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -126,7 +126,7 @@ namespace OrmTest.UnitTest { var x2 = Guid.NewGuid(); Expression> exp = it => SqlFunc.Substring("aaaa", 0, 2) == "a"; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -138,7 +138,7 @@ namespace OrmTest.UnitTest { var x2 = Guid.NewGuid(); Expression> exp = it =>"aaaa".Substring(0, 2)== "a"; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -152,11 +152,11 @@ namespace OrmTest.UnitTest { var x2 = Guid.NewGuid(); Expression> exp = it => SqlFunc.ToBool("true") == true; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(CAST(@MethodConst0 AS BIT) = @Const1 )", new List() { + base.Check(value, pars, "(CAST(@MethodConst0 AS SIGNED) = @Const1 )", new List() { new SugarParameter("@MethodConst0","true"),new SugarParameter("@Const1",(bool)true) }, "ToBool error"); } @@ -165,11 +165,11 @@ namespace OrmTest.UnitTest { var x2 = Guid.NewGuid(); Expression> exp = it => SqlFunc.ToDouble("2") == 2; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(CAST(@MethodConst0 AS FLOAT) = @Const1 )", new List() { + base.Check(value, pars, "(CAST(@MethodConst0 AS DECIMAL(18,4)) = @Const1 )", new List() { new SugarParameter("@MethodConst0","2"),new SugarParameter("@Const1",(Double)2) }, "ToDouble error"); } @@ -178,11 +178,11 @@ namespace OrmTest.UnitTest { var x2 = Guid.NewGuid(); Expression> exp = it => SqlFunc.ToGuid("A94027A3-476E-478D-8228-F4054394B874") == x2; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(CAST(@MethodConst0 AS UNIQUEIDENTIFIER) = @Const1 )", new List() { + base.Check(value, pars, "(CAST(@MethodConst0 AS CHAR) = @Const1 )", new List() { new SugarParameter("@MethodConst0","A94027A3-476E-478D-8228-F4054394B874"),new SugarParameter("@Const1",x2) }, "ToGuid error"); } @@ -191,11 +191,11 @@ namespace OrmTest.UnitTest { var x2 = DateTime.Now; Expression> exp = it => SqlFunc.ToDecimal("22") == 1; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(CAST(@MethodConst0 AS MONEY) = @Const1 )", new List() { + base.Check(value, pars, "(CAST(@MethodConst0 AS DECIMAL(18,4)) = @Const1 )", new List() { new SugarParameter("@MethodConst0","22"),new SugarParameter("@Const1",(decimal)1) }, "ToDecimal error"); } @@ -204,11 +204,11 @@ namespace OrmTest.UnitTest { var x2 = DateTime.Now; Expression> exp = it => SqlFunc.ToString("2015-1-1") == "a"; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(CAST(@MethodConst0 AS NVARCHAR(MAX)) = @Const1 )", new List() { + base.Check(value, pars, "(CAST(@MethodConst0 AS CHAR) = @Const1 )", new List() { new SugarParameter("@MethodConst0","2015-1-1"),new SugarParameter("@Const1","a") }, "Tostring error"); } @@ -217,7 +217,7 @@ namespace OrmTest.UnitTest { var x2 = DateTime.Now; Expression> exp = it => SqlFunc.ToDate("2015-1-1") == x2; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -229,7 +229,7 @@ namespace OrmTest.UnitTest { var x2 = DateTime.Now; Expression> exp = it => Convert.ToDateTime("2015-1-1") == x2; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -242,11 +242,11 @@ namespace OrmTest.UnitTest { var x2 = DateTime.Now; Expression> exp = it => SqlFunc.ToInt64("3") == 1; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(CAST(@MethodConst0 AS BIGINT) = @Const1 )", new List() { + base.Check(value, pars, "(CAST(@MethodConst0 AS SIGNED) = @Const1 )", new List() { new SugarParameter("@MethodConst0","3"),new SugarParameter("@Const1",(Int64)1) }, "ToInt64 error"); } @@ -255,11 +255,11 @@ namespace OrmTest.UnitTest { var x2 = DateTime.Now; Expression> exp = it => SqlFunc.ToInt32("3") == 1; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(CAST(@MethodConst0 AS INT) = @Const1 )", new List() { + base.Check(value, pars, "(CAST(@MethodConst0 AS SIGNED) = @Const1 )", new List() { new SugarParameter("@MethodConst0","3"),new SugarParameter("@Const1",1) }, "ToInt32 error"); } @@ -268,7 +268,7 @@ namespace OrmTest.UnitTest { var x2 = DateTime.Now; Expression> exp = it => SqlFunc.DateValue(x2, DateType.Year) == 1; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -280,29 +280,29 @@ namespace OrmTest.UnitTest private void StartsWith() { Expression> exp = it => SqlFunc.StartsWith(it.Name, "a"); - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, " (`Name` like @MethodConst0+'%') ", new List() { + base.Check(value, pars, " (`Name` like concat(@MethodConst0,'%')) ", new List() { new SugarParameter("@MethodConst0","a") }, "StartsWith error"); } private void EndsWith() { Expression> exp = it => SqlFunc.EndsWith(it.Name, "a"); - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, " (`Name` like '%'+@MethodConst0) ", new List() { + base.Check(value, pars, " (`Name` like concat('%',@MethodConst0)) ", new List() { new SugarParameter("@MethodConst0","a") }, "EndsWith"); } private void Between() { Expression> exp = it => SqlFunc.Between(it.Name, 1, 2); - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -315,11 +315,11 @@ namespace OrmTest.UnitTest { var x2 = DateTime.Now; Expression> exp = it => SqlFunc.DateAdd(x2, 11, DateType.Millisecond) == x2; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "((DATEADD(@MethodConst2,@MethodConst1,@MethodConst0)) = @Const3 )", new List() { + base.Check(value, pars, "((DATE_ADD(@MethodConst1 INTERVAL @MethodConst2 @MethodConst0)) = @Const3 )", new List() { new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",11),new SugarParameter("@Const3",x2), new SugarParameter("@MethodConst2",DateType.Millisecond) }, "DateAddByType error"); @@ -328,11 +328,11 @@ namespace OrmTest.UnitTest { var x2 = DateTime.Now; Expression> exp = it => SqlFunc.DateAdd(x2, 1) == x2; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "((DATEADD(day,@MethodConst1,@MethodConst0)) = @Const2 )", new List() { + base.Check(value, pars, "((DATE_ADD(@MethodConst1 INTERVAL @MethodConst0 day)) = @Const2 )", new List() { new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",1),new SugarParameter("@Const2",x2) }, "DateIsSameByType error"); } @@ -341,11 +341,11 @@ namespace OrmTest.UnitTest { var x2 = DateTime.Now; Expression> exp = it => SqlFunc.DateIsSame(x2, x2, DateType.Millisecond); - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, " (DATEDIFF(@MethodConst2,@MethodConst0,@MethodConst1)=0) ", new List() { + base.Check(value, pars, " (TIMESTAMPDIFF(@MethodConst2,@MethodConst0,@MethodConst1)=0) ", new List() { new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",x2), new SugarParameter("@MethodConst2",DateType.Millisecond) }, "DateIsSameByType error"); @@ -354,11 +354,11 @@ namespace OrmTest.UnitTest { var x2 = DateTime.Now; Expression> exp = it => SqlFunc.DateIsSame(x2, x2); - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(DATEDIFF(day,@MethodConst0,@MethodConst1)=0) ", new List() { + base.Check(value, pars, "(TIMESTAMPDIFF(day,@MethodConst0,@MethodConst1)=0) ", new List() { new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",x2) }, "DateIsSameDay error"); } @@ -366,7 +366,7 @@ namespace OrmTest.UnitTest private void Equals() { Expression> exp = it => SqlFunc.Equals(it.Name, "a"); - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -376,7 +376,7 @@ namespace OrmTest.UnitTest Expression> exp2 = it => SqlFunc.Equals("a", it.Name); - SqlServerExpressionContext expContext2 = new SqlServerExpressionContext(); + MySqlExpressionContext expContext2 = new MySqlExpressionContext(); expContext2.Resolve(exp2, ResolveExpressType.WhereSingle); var value2 = expContext2.Result.GetString(); var pars2 = expContext2.Parameters; @@ -387,7 +387,7 @@ namespace OrmTest.UnitTest private void Equals_2() { Expression> exp = it => SqlFunc.Equals(it.Name, it.Name); - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -397,7 +397,7 @@ namespace OrmTest.UnitTest Expression> exp2 = it => SqlFunc.Equals("a", "a2"); - SqlServerExpressionContext expContext2 = new SqlServerExpressionContext(); + MySqlExpressionContext expContext2 = new MySqlExpressionContext(); expContext2.Resolve(exp2, ResolveExpressType.WhereSingle); var value2 = expContext2.Result.GetString(); var pars2 = expContext2.Parameters; @@ -409,22 +409,22 @@ namespace OrmTest.UnitTest private void Contains() { Expression> exp = it => SqlFunc.Contains(it.Name, "a"); - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, " (`Name` like '%'+@MethodConst0+'%') ", new List() { + base.Check(value, pars, " (`Name` like concat('%',@MethodConst0,'%')) ", new List() { new SugarParameter("@MethodConst0","a") }, "Contains error"); } private void Contains2(string name="a") { Expression> exp = it => SqlFunc.Contains(it.Name, name); - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, " (`Name` like '%'+@MethodConst0+'%') ", new List() { + base.Check(value, pars, " (`Name` like concat('%',@MethodConst0,'%')) ", new List() { new SugarParameter("@MethodConst0","a") }, "Contains2 error"); } @@ -432,7 +432,7 @@ namespace OrmTest.UnitTest private void ExtendContainsArray() { var array = new string[] { "1", "2" }.ToList(); Expression> exp = it => array.Contains(it.Name); - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -443,7 +443,7 @@ namespace OrmTest.UnitTest { string[] array = new string[] { "1", "2" }; Expression> exp = it => SqlFunc.ContainsArray(array, it.Name); - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -453,7 +453,7 @@ namespace OrmTest.UnitTest private void Trim() { Expression> exp = it => SqlFunc.Trim(" a") == it.Name; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -465,7 +465,7 @@ namespace OrmTest.UnitTest private void ToUpper() { Expression> exp = it => "a" == SqlFunc.ToUpper(it.Id); - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -476,7 +476,7 @@ namespace OrmTest.UnitTest private void ToLower() { Expression> exp = it => "a" == SqlFunc.ToLower(it.Id); - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -489,7 +489,7 @@ namespace OrmTest.UnitTest private void StringIsNullOrEmpty() { Expression> exp = it => it.Id > 2 || SqlFunc.IsNullOrEmpty(it.Id); ; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -500,7 +500,7 @@ namespace OrmTest.UnitTest private void StringIsNullOrEmpty2() { Expression> exp = it => 2 == it.Id || SqlFunc.IsNullOrEmpty(true); ; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -513,7 +513,7 @@ namespace OrmTest.UnitTest { int a = 1; Expression> exp = it => 2 == it.Id || SqlFunc.IsNullOrEmpty(a); ; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -526,7 +526,7 @@ namespace OrmTest.UnitTest { WhereConst.name = "xx"; Expression> exp = it => 2 == it.Id || SqlFunc.IsNullOrEmpty(WhereConst.name); ; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -539,7 +539,7 @@ namespace OrmTest.UnitTest { WhereConst.name = "xx"; Expression> exp = it => !SqlFunc.IsNullOrEmpty(WhereConst.name); ; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -552,7 +552,7 @@ namespace OrmTest.UnitTest private void HasValue() { Expression> exp = it => SqlFunc.HasValue(it.Name); - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -565,7 +565,7 @@ namespace OrmTest.UnitTest private void HasNumber() { Expression> exp = it => SqlFunc.HasNumber(it.Id); - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -579,7 +579,7 @@ namespace OrmTest.UnitTest private void IIF() { Expression> exp = it => SqlFunc.IIF(it.Id == 1, 1, 2)==1; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -595,11 +595,11 @@ namespace OrmTest.UnitTest private void IIF2() { Expression> exp = it => SqlFunc.IIF(SqlFunc.Contains(it.Name,"a"), 1, 2)==1; - SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + MySqlExpressionContext expContext = new MySqlExpressionContext(); 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() + base.Check(value, pars, "(( CASE WHEN (`Name` like concat('%',@MethodConst0,'%')) THEN @MethodConst1 ELSE @MethodConst2 END ) = @Const3 )", new List() { new SugarParameter("@MethodConst0","a"), new SugarParameter("@MethodConst1",1), diff --git a/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlExpressionContext.cs b/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlExpressionContext.cs index a69a66807..2736d588d 100644 --- a/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlExpressionContext.cs +++ b/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlExpressionContext.cs @@ -59,21 +59,21 @@ namespace SqlSugar { var parameter = model.Args[0]; var parameter2 = model.Args[1]; - return string.Format(" ({0} like {1}) ", parameter.MemberName, "%" + parameter2.MemberName + "%" ); + return string.Format(" ({0} like concat('%',{1},'%')) ", parameter.MemberName, parameter2.MemberName ); } public override string StartsWith(MethodCallExpressionModel model) { var parameter = model.Args[0]; var parameter2 = model.Args[1]; - return string.Format(" ({0} like {1}) ", parameter.MemberName, parameter2.MemberName + "%"); + return string.Format(" ({0} like concat({1},'%')) ", parameter.MemberName, parameter2.MemberName); } public override string EndsWith(MethodCallExpressionModel model) { var parameter = model.Args[0]; var parameter2 = model.Args[1]; - return string.Format(" ({0} like {1}) ", parameter.MemberName, "%"+parameter2.MemberName); + return string.Format(" ({0} like concat('%',{1}))", parameter.MemberName,parameter2.MemberName); } public override string DateIsSameDay(MethodCallExpressionModel model) @@ -121,13 +121,13 @@ namespace SqlSugar public override string ToString(MethodCallExpressionModel model) { var parameter = model.Args[0]; - return string.Format(" CAST({0} AS CHAR", parameter.MemberName); + return string.Format(" CAST({0} AS CHAR)", parameter.MemberName); } public override string ToGuid(MethodCallExpressionModel model) { var parameter = model.Args[0]; - return string.Format(" CAST({0} AS CHAR", parameter.MemberName); + return string.Format(" CAST({0} AS CHAR)", parameter.MemberName); } public override string ToDouble(MethodCallExpressionModel model)