diff --git a/Src/Asp.Net/MySqlTest/Program.cs b/Src/Asp.Net/MySqlTest/Program.cs index db24a2d24..8ec4fd083 100644 --- a/Src/Asp.Net/MySqlTest/Program.cs +++ b/Src/Asp.Net/MySqlTest/Program.cs @@ -18,9 +18,9 @@ namespace OrmTest static void Main(string[] args) { // /***Unit Test***/ - // new Field(1).Init(); - // new Where(1).Init(); - // new Method(1).Init(); + new Field(1).Init(); + new Where(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/Field.cs b/Src/Asp.Net/MySqlTest/UnitTest/ExpressionTest/Field.cs index 9f7384f0e..1a1080346 100644 --- a/Src/Asp.Net/MySqlTest/UnitTest/ExpressionTest/Field.cs +++ b/Src/Asp.Net/MySqlTest/UnitTest/ExpressionTest/Field.cs @@ -45,7 +45,7 @@ namespace OrmTest.UnitTest public ExpressionContext GetContext() { - return new SqlServerExpressionContext();//可以更换 + return new MySqlExpressionContext();//可以更换 } } } diff --git a/Src/Asp.Net/MySqlTest/UnitTest/ExpressionTest/Method.cs b/Src/Asp.Net/MySqlTest/UnitTest/ExpressionTest/Method.cs index cf40bc647..ed5914b6f 100644 --- a/Src/Asp.Net/MySqlTest/UnitTest/ExpressionTest/Method.cs +++ b/Src/Asp.Net/MySqlTest/UnitTest/ExpressionTest/Method.cs @@ -79,7 +79,7 @@ namespace OrmTest.UnitTest 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 NVARCHAR(MAX)) = @Const0 )", new List() { new SugarParameter("@Const0","a") }, "ExtendToString error"); } @@ -91,7 +91,7 @@ namespace OrmTest.UnitTest 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 NVARCHAR(MAX)) = @Const0 )", new List() { new SugarParameter("@Const0","a") }, "ConvetToString error"); } @@ -284,7 +284,7 @@ namespace OrmTest.UnitTest 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 @MethodConst0+'%') ", new List() { new SugarParameter("@MethodConst0","a") }, "StartsWith error"); } @@ -295,7 +295,7 @@ namespace OrmTest.UnitTest 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 '%'+@MethodConst0) ", new List() { new SugarParameter("@MethodConst0","a") }, "EndsWith"); } @@ -306,7 +306,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, " ([Name] BETWEEN @MethodConst0 AND @MethodConst1) ", new List() { + base.Check(value, pars, " (`Name` BETWEEN @MethodConst0 AND @MethodConst1) ", new List() { new SugarParameter("@MethodConst0",1),new SugarParameter("@MethodConst1",2), }, "Between error"); } @@ -370,7 +370,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, " ([Name] = @MethodConst0) ", new List() { + base.Check(value, pars, " (`Name` = @MethodConst0) ", new List() { new SugarParameter("@MethodConst0","a") }, "Equals1 error"); @@ -380,7 +380,7 @@ namespace OrmTest.UnitTest expContext2.Resolve(exp2, ResolveExpressType.WhereSingle); var value2 = expContext2.Result.GetString(); var pars2 = expContext2.Parameters; - base.Check(value2, pars2, " (@MethodConst0 = [Name]) ", new List() { + base.Check(value2, pars2, " (@MethodConst0 = `Name`) ", new List() { new SugarParameter("@MethodConst0","a") }, "Equals2 error"); } @@ -391,7 +391,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, " ([Name] = [Name]) ", new List() { + base.Check(value, pars, " (`Name` = `Name`) ", new List() { new SugarParameter("@MethodConst0","a") }, "Equals1 error"); @@ -413,7 +413,7 @@ namespace OrmTest.UnitTest 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 '%'+@MethodConst0+'%') ", new List() { new SugarParameter("@MethodConst0","a") }, "Contains error"); } @@ -424,7 +424,7 @@ namespace OrmTest.UnitTest 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 '%'+@MethodConst0+'%') ", new List() { new SugarParameter("@MethodConst0","a") }, "Contains2 error"); } @@ -436,7 +436,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, null, " ([Name] IN ('1','2')) ", null, "Contains2 error"); + base.Check(value, null, " (`Name` IN ('1','2')) ", null, "Contains2 error"); } private void ContainsArray() @@ -447,7 +447,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, null, " ([Name] IN ('1','2')) ", null, "Contains2 error"); + base.Check(value, null, " (`Name` IN ('1','2')) ", null, "Contains2 error"); } private void Trim() @@ -457,7 +457,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "((rtrim(ltrim(@MethodConst0))) = [Name] )", new List() { + base.Check(value, pars, "((rtrim(ltrim(@MethodConst0))) = `Name` )", new List() { new SugarParameter("@MethodConst0"," a") }, "Trim error"); } @@ -469,7 +469,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "( @Const0 = (UPPER([Id])) )", new List() { + base.Check(value, pars, "( @Const0 = (UPPER(`Id`)) )", new List() { new SugarParameter("@Const0","a") }, "ToUpper error"); } @@ -480,7 +480,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "( @Const0 = (LOWER([Id])) )", new List() { + base.Check(value, pars, "( @Const0 = (LOWER(`Id`)) )", new List() { new SugarParameter("@Const0","a") }, "ToLower error"); } @@ -493,7 +493,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(( [Id] > @Id0 ) OR ( [Id]='' OR [Id] IS NULL ))", new List() { + base.Check(value, pars, "(( `Id` > @Id0 ) OR ( `Id`='' OR `Id` IS NULL ))", new List() { new SugarParameter("@Id0",2) }, "StringIsNullOrEmpty error"); } @@ -504,7 +504,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(( @Id0 = [Id] ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))", new List() { + base.Check(value, pars, "(( @Id0 = `Id` ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))", new List() { new SugarParameter("@MethodConst1",true), new SugarParameter("@Id0",2) }, "StringIsNullOrEmpty2 error"); @@ -517,7 +517,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(( @Id0 = [Id] ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))", new List() { + base.Check(value, pars, "(( @Id0 = `Id` ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))", new List() { new SugarParameter("@MethodConst1",1), new SugarParameter("@Id0",2) }, "StringIsNullOrEmpty3 error"); @@ -530,7 +530,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(( @Id0 = [Id] ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))", new List() { + base.Check(value, pars, "(( @Id0 = `Id` ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))", new List() { new SugarParameter("@MethodConst1","xx"), new SugarParameter("@Id0",2) }, "StringIsNullOrEmpty4 error"); @@ -556,7 +556,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "( [Name]<>'' AND [Name] IS NOT NULL )", new List() + base.Check(value, pars, "( `Name`<>'' AND `Name` IS NOT NULL )", new List() { }, "HasValue error"); @@ -569,7 +569,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "( [Id]>0 AND [Id] IS NOT NULL )", new List() + base.Check(value, pars, "( `Id`>0 AND `Id` IS NOT NULL )", new List() { @@ -583,7 +583,7 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(( CASE WHEN ( [Id] = @Id0 ) THEN @MethodConst1 ELSE @MethodConst2 END ) = @Const3 )", new List() + base.Check(value, pars, "(( CASE WHEN ( `Id` = @Id0 ) THEN @MethodConst1 ELSE @MethodConst2 END ) = @Const3 )", new List() { new SugarParameter("@Id0",1), new SugarParameter("@MethodConst1",1), @@ -599,7 +599,7 @@ namespace OrmTest.UnitTest 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 '%'+@MethodConst0+'%') THEN @MethodConst1 ELSE @MethodConst2 END ) = @Const3 )", new List() { new SugarParameter("@MethodConst0","a"), new SugarParameter("@MethodConst1",1), diff --git a/Src/Asp.Net/MySqlTest/UnitTest/ExpressionTest/Where.cs b/Src/Asp.Net/MySqlTest/UnitTest/ExpressionTest/Where.cs index fc6f74d56..567b9d76d 100644 --- a/Src/Asp.Net/MySqlTest/UnitTest/ExpressionTest/Where.cs +++ b/Src/Asp.Net/MySqlTest/UnitTest/ExpressionTest/Where.cs @@ -44,11 +44,11 @@ namespace OrmTest.UnitTest private void WhereMultiple1() { Expression> exp = it => it.Id > 1; - ExpressionContext expContext = new ExpressionContext(); + ExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereMultiple); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "( [it].[Id] > @Id0 )", new List() { + base.Check(value, pars, "( `it`.`Id` > @Id0 )", new List() { new SugarParameter("@Id0",1) }, "WhereMultiple1"); } @@ -57,11 +57,11 @@ namespace OrmTest.UnitTest string name = "a"; WhereConst.name = "a1"; Expression> exp = it => (it.Id > 1 && it.Name != name || it.Id == 1) || it.Name == WhereConst.name; - ExpressionContext expContext = new ExpressionContext(); + ExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereMultiple); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, " (((( [it].[Id] > @Id0 ) AND ( [it].[Name] <> @Name1 )) OR ( [it].[Id] = @Id2 )) OR ( [it].[Name] = @Name3 ))", new List() { + base.Check(value, pars, " (((( `it`.`Id` > @Id0 ) AND ( `it`.`Name` <> @Name1 )) OR ( `it`.`Id` = @Id2 )) OR ( `it`.`Name` = @Name3 ))", new List() { new SugarParameter("@Id0",1), new SugarParameter("@Name1","a"), new SugarParameter("@Id2",1), @@ -71,33 +71,33 @@ namespace OrmTest.UnitTest private void whereSingle1() { Expression> exp = it => it.Id > 1; - ExpressionContext expContext = new ExpressionContext(); + ExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "( [Id] > @Id0 )", new List() { + base.Check(value, pars, "( `Id` > @Id0 )", new List() { new SugarParameter("@Id0",1) }, "whereSingle1"); } private void whereSingle2() { Expression> exp = it => 1 > it.Id; - ExpressionContext expContext = new ExpressionContext(); + ExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "( @Id0 > [Id] )", new List() { + base.Check(value, pars, "( @Id0 > `Id` )", new List() { new SugarParameter("@Id0",1) }, "whereSingle2"); } private void whereSingle3() { Expression> exp = it => it.Id > 1 || it.Name == "a"; - ExpressionContext expContext = new ExpressionContext(); + ExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, " (( [Id] > @Id0 ) OR ( [Name] = @Name1 ))", new List() { + base.Check(value, pars, " (( `Id` > @Id0 ) OR ( `Name` = @Name1 ))", new List() { new SugarParameter("@Id0",1), new SugarParameter("@Name1","a") }, "whereSingle3"); @@ -105,11 +105,11 @@ namespace OrmTest.UnitTest private void whereSingle4() { Expression> exp = it => (it.Id > 1 && it.Name != "a") || it.Name == "a1"; - ExpressionContext expContext = new ExpressionContext(); + ExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, " ((( [Id] > @Id0 ) AND ( [Name] <> @Name1 )) OR ( [Name] = @Name2 )) ", new List() { + base.Check(value, pars, " ((( `Id` > @Id0 ) AND ( `Name` <> @Name1 )) OR ( `Name` = @Name2 )) ", new List() { new SugarParameter("@Id0",1), new SugarParameter("@Name1","a"), new SugarParameter("@Name2","a1") @@ -120,11 +120,11 @@ namespace OrmTest.UnitTest string name = "a"; WhereConst.name = "a1"; Expression> exp = it => (it.Id > 1 && it.Name != name) || it.Name == WhereConst.name; - ExpressionContext expContext = new ExpressionContext(); + ExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, " ((( [Id] > @Id0 ) AND ( [Name] <> @Name1 )) OR ( [Name] = @Name2 )) ", new List() { + base.Check(value, pars, " ((( `Id` > @Id0 ) AND ( `Name` <> @Name1 )) OR ( `Name` = @Name2 )) ", new List() { new SugarParameter("@Id0",1), new SugarParameter("@Name1","a"), new SugarParameter("@Name2","a1") @@ -135,11 +135,11 @@ namespace OrmTest.UnitTest string name = "a"; WhereConst.name = "a1"; Expression> exp = it => (it.Id > 1 && it.Name != name||it.Id==1) || it.Name == WhereConst.name; - ExpressionContext expContext = new ExpressionContext(); + ExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, " (((( [Id] > @Id0 ) AND ( [Name] <> @Name1 )) OR ( [Id] = @Id2 )) OR ( [Name] = @Name3 ))", new List() { + base.Check(value, pars, " (((( `Id` > @Id0 ) AND ( `Name` <> @Name1 )) OR ( `Id` = @Id2 )) OR ( `Name` = @Name3 ))", new List() { new SugarParameter("@Id0",1), new SugarParameter("@Name1","a"), new SugarParameter("@Id2",1), @@ -149,11 +149,11 @@ namespace OrmTest.UnitTest private void whereSingle7(Student st) { Expression> exp = it => it.Id > st.Id; - ExpressionContext expContext = new ExpressionContext(); + ExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "( [Id] > @Id0 )", new List() { + base.Check(value, pars, "( `Id` > @Id0 )", new List() { new SugarParameter("@Id0",1) }, "whereSingle7"); } @@ -161,11 +161,11 @@ namespace OrmTest.UnitTest private void whereSingle8(Student st) { Expression> exp = it => it.Name == null; - ExpressionContext expContext = new ExpressionContext(); + ExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "( [Name] IS NULL )", new List() { + base.Check(value, pars, "( `Name` IS NULL )", new List() { }, "whereSingle8"); } @@ -173,11 +173,11 @@ namespace OrmTest.UnitTest private void whereSingle9(Student st) { Expression> exp = it => it.Name == st.Name; - ExpressionContext expContext = new ExpressionContext(); + ExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "( [Name] = @Name0 )", new List() + base.Check(value, pars, "( `Name` = @Name0 )", new List() { new SugarParameter("@Name0",null) }, "whereSingle9"); @@ -187,7 +187,7 @@ namespace OrmTest.UnitTest private void whereSingle10() { Expression> exp = it => true; - ExpressionContext expContext = new ExpressionContext(); + ExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -201,7 +201,7 @@ namespace OrmTest.UnitTest private void whereSingle11() { Expression> exp = it => !true; - ExpressionContext expContext = new ExpressionContext(); + ExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; @@ -214,11 +214,11 @@ namespace OrmTest.UnitTest private void whereSingle12() { Expression> exp = it => it.Bool1==true; - ExpressionContext expContext = new ExpressionContext(); + ExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "( [Bool1] = @Bool10 )", new List() + base.Check(value, pars, "( `Bool1` = @Bool10 )", new List() { new SugarParameter("@Bool10",true) }, "whereSingle12"); @@ -227,11 +227,11 @@ namespace OrmTest.UnitTest private void whereSingle13() { Expression> exp = it => it.Name!=null; - ExpressionContext expContext = new ExpressionContext(); + ExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "( [Name] IS NOT NULL )", new List() + base.Check(value, pars, "( `Name` IS NOT NULL )", new List() { }, "whereSingle13"); @@ -240,11 +240,11 @@ namespace OrmTest.UnitTest private void whereSingle14() { Expression> exp = it =>true&& it.Name != null; - ExpressionContext expContext = new ExpressionContext(); + ExpressionContext expContext = new MySqlExpressionContext(); expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, "(( 1 = 1 ) AND( [Name] IS NOT NULL ))", new List() + base.Check(value, pars, "(( 1 = 1 ) AND( `Name` IS NOT NULL ))", new List() { }, "whereSingle14"); diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Method/DefaultDbMethod.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Method/DefaultDbMethod.cs index 0f4e0f277..bdefb3693 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Method/DefaultDbMethod.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Method/DefaultDbMethod.cs @@ -83,21 +83,21 @@ namespace SqlSugar return string.Format(" ({0} IN ({1})) ", value, inValueString); } - public string Equals(MethodCallExpressionModel model) + public virtual string Equals(MethodCallExpressionModel model) { var parameter = model.Args[0]; var parameter2 = model.Args[1]; return string.Format(" ({0} = {1}) ", parameter.MemberName, parameter2.MemberName); ; } - public string DateIsSameDay(MethodCallExpressionModel model) + public virtual string DateIsSameDay(MethodCallExpressionModel model) { var parameter = model.Args[0]; var parameter2 = model.Args[1]; return string.Format(" (DATEDIFF(day,{0},{1})=0) ", parameter.MemberName, parameter2.MemberName); ; } - public string DateIsSameByType(MethodCallExpressionModel model) + public virtual string DateIsSameByType(MethodCallExpressionModel model) { var parameter = model.Args[0]; var parameter2 = model.Args[1]; @@ -105,7 +105,7 @@ namespace SqlSugar return string.Format(" (DATEDIFF({2},{0},{1})=0) ", parameter.MemberName, parameter2.MemberName, parameter3.MemberName); } - public string DateAddByType(MethodCallExpressionModel model) + public virtual string DateAddByType(MethodCallExpressionModel model) { var parameter = model.Args[0]; var parameter2 = model.Args[1]; @@ -113,14 +113,14 @@ namespace SqlSugar return string.Format(" (DATEADD({2},{1},{0})) ", parameter.MemberName, parameter2.MemberName, parameter3.MemberName); } - public string DateAddDay(MethodCallExpressionModel model) + public virtual string DateAddDay(MethodCallExpressionModel model) { var parameter = model.Args[0]; var parameter2 = model.Args[1]; return string.Format(" (DATEADD(day,{1},{0})) ", parameter.MemberName, parameter2.MemberName); } - public string Between(MethodCallExpressionModel model) + public virtual string Between(MethodCallExpressionModel model) { var parameter = model.Args[0]; var parameter1 = model.Args[1]; @@ -128,75 +128,75 @@ namespace SqlSugar return string.Format(" ({0} BETWEEN {1} AND {2}) ", parameter.MemberName, parameter1.MemberName, parameter2.MemberName); } - public string StartsWith(MethodCallExpressionModel model) + public virtual string StartsWith(MethodCallExpressionModel model) { var parameter = model.Args[0]; var parameter2 = model.Args[1]; return string.Format(" ({0} like {1}+'%') ", parameter.MemberName, parameter2.MemberName); } - public string EndsWith(MethodCallExpressionModel model) + public virtual string EndsWith(MethodCallExpressionModel model) { var parameter = model.Args[0]; var parameter2 = model.Args[1]; return string.Format(" ({0} like '%'+{1}) ", parameter.MemberName, parameter2.MemberName); } - public string DateValue(MethodCallExpressionModel model) + public virtual string DateValue(MethodCallExpressionModel model) { var parameter = model.Args[0]; var parameter2 = model.Args[1]; return string.Format(" ({0}({1})) ", parameter2.MemberName, parameter.MemberName); } - public string ToInt32(MethodCallExpressionModel model) + public virtual string ToInt32(MethodCallExpressionModel model) { var parameter = model.Args[0]; return string.Format(" CAST({0} AS INT)", parameter.MemberName); } - public string ToInt64(MethodCallExpressionModel model) + public virtual string ToInt64(MethodCallExpressionModel model) { var parameter = model.Args[0]; return string.Format(" CAST({0} AS BIGINT)", parameter.MemberName); } - public string ToString(MethodCallExpressionModel model) + public virtual string ToString(MethodCallExpressionModel model) { var parameter = model.Args[0]; return string.Format(" CAST({0} AS NVARCHAR(MAX))", parameter.MemberName); } - public string ToGuid(MethodCallExpressionModel model) + public virtual string ToGuid(MethodCallExpressionModel model) { var parameter = model.Args[0]; return string.Format(" CAST({0} AS UNIQUEIDENTIFIER)", parameter.MemberName); } - public string ToDouble(MethodCallExpressionModel model) + public virtual string ToDouble(MethodCallExpressionModel model) { var parameter = model.Args[0]; return string.Format(" CAST({0} AS FLOAT)", parameter.MemberName); } - public string ToBool(MethodCallExpressionModel model) + public virtual string ToBool(MethodCallExpressionModel model) { var parameter = model.Args[0]; return string.Format(" CAST({0} AS BIT)", parameter.MemberName); } - public string ToDate(MethodCallExpressionModel model) + public virtual string ToDate(MethodCallExpressionModel model) { var parameter = model.Args[0]; return string.Format(" CAST({0} AS DATETIME)", parameter.MemberName); } - public string ToDecimal(MethodCallExpressionModel model) + public virtual string ToDecimal(MethodCallExpressionModel model) { var parameter = model.Args[0]; return string.Format(" CAST({0} AS MONEY)", parameter.MemberName); } - public string Substring(MethodCallExpressionModel model) + public virtual string Substring(MethodCallExpressionModel model) { var parameter = model.Args[0]; var parameter2 = model.Args[1]; @@ -204,13 +204,13 @@ namespace SqlSugar return string.Format("SUBSTRING({0},1 + {1},{2})", parameter.MemberName, parameter2.MemberName, parameter3.MemberName); } - public string Length(MethodCallExpressionModel model) + public virtual string Length(MethodCallExpressionModel model) { var parameter = model.Args[0]; return string.Format("LEN({0})", parameter.MemberName); } - public string Replace(MethodCallExpressionModel model) + public virtual string Replace(MethodCallExpressionModel model) { var parameter = model.Args[0]; var parameter2 = model.Args[1]; @@ -218,31 +218,31 @@ namespace SqlSugar return string.Format("REPLACE({0},{1},{2})", parameter.MemberName, parameter2.MemberName, parameter3.MemberName); } - public string AggregateSum(MethodCallExpressionModel model) + public virtual string AggregateSum(MethodCallExpressionModel model) { var parameter = model.Args[0]; return string.Format("SUM({0})", parameter.MemberName); } - public string AggregateAvg(MethodCallExpressionModel model) + public virtual string AggregateAvg(MethodCallExpressionModel model) { var parameter = model.Args[0]; return string.Format("AVG({0})", parameter.MemberName); } - public string AggregateMin(MethodCallExpressionModel model) + public virtual string AggregateMin(MethodCallExpressionModel model) { var parameter = model.Args[0]; return string.Format("MIN({0})", parameter.MemberName); } - public string AggregateMax(MethodCallExpressionModel model) + public virtual string AggregateMax(MethodCallExpressionModel model) { var parameter = model.Args[0]; return string.Format("MAX({0})", parameter.MemberName); } - public string AggregateCount(MethodCallExpressionModel model) + public virtual string AggregateCount(MethodCallExpressionModel model) { var parameter = model.Args[0]; return string.Format("COUNT({0})", parameter.MemberName); diff --git a/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlExpressionContext.cs b/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlExpressionContext.cs index 812eaa3d8..a69a66807 100644 --- a/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlExpressionContext.cs +++ b/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlExpressionContext.cs @@ -55,5 +55,104 @@ namespace SqlSugar public class MySqlMethod : DefaultDbMethod, IDbMethods { + public override string Contains(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + var parameter2 = model.Args[1]; + return string.Format(" ({0} like {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 + "%"); + } + + 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); + } + + public override string DateIsSameDay(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + var parameter2 = model.Args[1]; + return string.Format(" (TIMESTAMPDIFF(day,{0},{1})=0) ", parameter.MemberName, parameter2.MemberName); ; + } + + public override string DateIsSameByType(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + var parameter2 = model.Args[1]; + var parameter3 = model.Args[2]; + return string.Format(" (TIMESTAMPDIFF({2},{0},{1})=0) ", parameter.MemberName, parameter2.MemberName, parameter3.MemberName); + } + + public override string DateAddByType(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + var parameter2 = model.Args[1]; + var parameter3 = model.Args[2]; + return string.Format(" (DATE_ADD({1} INTERVAL {2} {0})) ", parameter.MemberName, parameter2.MemberName, parameter3.MemberName); + } + + public override string DateAddDay(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + var parameter2 = model.Args[1]; + return string.Format(" (DATE_ADD({1} INTERVAL {0} day)) ", parameter.MemberName, parameter2.MemberName); + } + + public override string ToInt32(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + return string.Format(" CAST({0} AS SIGNED)", parameter.MemberName); + } + + public override string ToInt64(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + return string.Format(" CAST({0} AS SIGNED)", parameter.MemberName); + } + + public override string ToString(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + 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); + } + + public override string ToDouble(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + return string.Format(" CAST({0} AS DECIMAL(18,4))", parameter.MemberName); + } + + public override string ToBool(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + return string.Format(" CAST({0} AS SIGNED)", parameter.MemberName); + } + + public override string ToDecimal(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + return string.Format(" CAST({0} AS DECIMAL(18,4))", parameter.MemberName); + } + + public override string Length(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + return string.Format(" LENGTH({0})", parameter.MemberName); + } + } }