From 208a8e74671d646a3377bf3f73b62dd83298e91d Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Mon, 14 Aug 2017 01:25:43 +0800 Subject: [PATCH] Update Demo --- .../src/SqlServerTest/UnitTest/DataTest.cs | 5 - .../src/SqlServerTest/UnitTest/DataTest2.cs | 39 +++++ .../src/SqlServerTest/UnitTest/Delete.cs | 9 +- .../src/SqlServerTest/UnitTest/EnumTest.cs | 39 +++++ .../UnitTest/ExpressionTest/Field.cs | 9 + .../UnitTest/ExpressionTest/Method.cs | 162 ++++++++++++++++-- .../UnitTest/ExpressionTest/Select.cs | 96 +++++++++-- .../UnitTest/ExpressionTest/Where.cs | 129 ++++++++++++++ .../src/SqlServerTest/UnitTest/Insert.cs | 35 +++- .../src/SqlServerTest/UnitTest/Mapping .cs | 43 +++-- .../SqlServerTest/UnitTest/Query/JoinQuery.cs | 59 ++++++- .../UnitTest/Query/SelectQuery.cs | 19 +- .../UnitTest/Query/SingleQuery.cs | 46 ++--- .../UnitTest/Setting/AutoClose.cs | 5 - .../UnitTest/Setting/MapColumn.cs | 6 +- .../UnitTest/Setting/MapTable.cs | 5 - .../SqlServerTest/UnitTest/UnitTestBase.cs | 6 + .../src/SqlServerTest/UnitTest/Update.cs | 40 ++++- 18 files changed, 654 insertions(+), 98 deletions(-) create mode 100644 Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/DataTest2.cs create mode 100644 Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/EnumTest.cs diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/DataTest.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/DataTest.cs index a5bd769bb..fab8e7c11 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/DataTest.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/DataTest.cs @@ -68,10 +68,5 @@ namespace OrmTest.UnitTest throw new Exception("DataTest Error"); } } - public SqlSugarClient GetInstance() - { - SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }); - return db; - } } } diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/DataTest2.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/DataTest2.cs new file mode 100644 index 000000000..83e2818d9 --- /dev/null +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/DataTest2.cs @@ -0,0 +1,39 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace OrmTest.UnitTest +{ + public class DataTest2 : UnitTestBase + { + public interface IEntity { + T ID { get; set; } + } + public abstract class Entity : IEntity + { + public virtual T ID { get; set; } + } + public class MyModel: Entity + { + public override int ID { get; set; } + } + private DataTest2() { } + public DataTest2(int eachCount) + { + this.Count = eachCount; + } + + public void Init() + { + var db = GetInstance(); + var t1 = db.Queryable().AS("Student").ToList(); + } + public SqlSugarClient GetInstance() + { + SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }); + return db; + } + } +} diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Delete.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Delete.cs index 3575648f3..a84879864 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Delete.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Delete.cs @@ -51,12 +51,11 @@ namespace OrmTest.UnitTest base.Check(@"DELETE FROM [STudent] WHERE ( [ID] = @Id0 ) ", new List() { new SugarParameter("@Id0",1) }, t5.Key, t5.Value, "Delte t5 error"); - } - public SqlSugarClient GetInstance() - { - SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }); - return db; + var t6 = db.Deleteable().Where("id=@id",new { id=1}).ToSql(); + base.Check(@"DELETE FROM [STudent] WHERE id=@id", new List() { + new SugarParameter("@id",1) + }, t6.Key, t6.Value, "Delte t6 error"); } } } diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/EnumTest.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/EnumTest.cs new file mode 100644 index 000000000..8da966c05 --- /dev/null +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/EnumTest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using OrmTest.Demo; +using OrmTest.Models; + +namespace OrmTest.UnitTest +{ + public class EnumTest : UnitTestBase + { + private EnumTest() { } + public EnumTest(int eachCount) + { + this.Count = eachCount; + } + public void Init() + { + + var db = GetInstance(); + var shoolValue = SchoolEnum.HarvardUniversity; + var enums = new SchoolEnum[] { shoolValue, SchoolEnum.UniversityOfOxford }; + var list = db.Queryable().AS("student").Where(it => it.SchoolId == shoolValue).ToList(); + + var x = new StudentEnum() + { + Name = shoolValue.ToString(), + SchoolId = shoolValue + }; + var x2 = db.Queryable().AS("student").Where(it => enums.Contains(it.SchoolId)).ToSql(); + var id= db.Insertable(x).AS("student").ExecuteReturnIdentity(); + var data = db.Queryable().AS("student").InSingle(id); + shoolValue = SchoolEnum.UniversityOfOxford; + var sql= db.Updateable().AS("student").UpdateColumns(it=>new StudentEnum() { Name="a" , SchoolId= shoolValue }).Where(it=>it.Id==id).ToSql(); + + var sql2 = db.Updateable().AS("student").UpdateColumns(it => new StudentEnum() { Name = "a", SchoolId = SchoolEnum.UniversityOfOxford }).Where(it => it.Id == id).ToSql(); + } + } +} \ No newline at end of file diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/ExpressionTest/Field.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/ExpressionTest/Field.cs index 9f7384f0e..122b297b0 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/ExpressionTest/Field.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/ExpressionTest/Field.cs @@ -23,6 +23,7 @@ namespace OrmTest.UnitTest { FieldSingle(); FieldMultiple(); + FieldMultiple2(); } base.End("Filed Test"); } @@ -43,6 +44,14 @@ namespace OrmTest.UnitTest Check(selectorValue, null, expContext.GetTranslationColumnName("it.Name"), null, "FieldMultiple error"); } + private void FieldMultiple2() + { + Expression> exp = it =>SqlFunc.AggregateAvg(it.Id); + ExpressionContext expContext = GetContext(); + expContext.Resolve(exp, ResolveExpressType.FieldMultiple); + var selectorValue = expContext.Result.GetString(); + Check(selectorValue, null, "AVG([it].[Id])", null, "FieldMultiple error"); + } public ExpressionContext GetContext() { return new SqlServerExpressionContext();//可以更换 diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/ExpressionTest/Method.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/ExpressionTest/Method.cs index cf40bc647..117824eb2 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/ExpressionTest/Method.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/ExpressionTest/Method.cs @@ -30,8 +30,12 @@ namespace OrmTest.UnitTest ExtendDate(); //SqlFun methods + MappingColumn(); IIF(); IIF2(); + IIF3(); + IIF4(); + IIF5(); #region StringIsNullOrEmpty HasValue(); HasNumber(); @@ -46,6 +50,7 @@ namespace OrmTest.UnitTest Trim(); Contains(); Contains2(); + Contains3(); ContainsArray(); StartsWith(); EndsWith(); @@ -68,6 +73,7 @@ namespace OrmTest.UnitTest Substring(); Replace(); Length(); + Time(); } base.End("Method Test"); } @@ -107,8 +113,49 @@ namespace OrmTest.UnitTest base.Check(value, pars, "(LEN(@MethodConst0) > @Const1 )", new List() { new SugarParameter("@MethodConst0","aaaa"),new SugarParameter("@Const1",1) }, "Length error"); + + Length2(); + Length3(); } + private void Length2() + { + Expression> exp = it => it.Name.Length > 1; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "(LEN([Name])> @Length1 )", new List() { + new SugarParameter("@Length1",1) + }, "Length2 error"); + } + + private void Length3() + { + Expression> exp = it => it.Name.Length > "a".Length; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "(LEN([Name])> @Length1 )", new List() { + new SugarParameter("@Length1",1) + }, "Length3 error"); + } + + private void Time() + { + TimeSpan s = TimeSpan.Parse("11:22:22"); + Expression> exp = it => SqlFunc.ToTime("11:12:59")==s; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "(CAST(@MethodConst0 AS TIME) = @Const1 )", new List() { + new SugarParameter("@MethodConst0","11:12:59"),new SugarParameter("@Const1",s) + }, "Time error"); + } + + private void Replace() { var x2 = Guid.NewGuid(); @@ -272,8 +319,8 @@ namespace OrmTest.UnitTest expContext.Resolve(exp, ResolveExpressType.WhereSingle); var value = expContext.Result.GetString(); var pars = expContext.Parameters; - base.Check(value, pars, " ((@MethodConst1(@MethodConst0)) = @Const2 ) ", new List() { - new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",DateType.Year),new SugarParameter("@Const2",1) + base.Check(value, pars, " (DateName(Year,@MethodConst0) = @Const2 ) ", new List() { + new SugarParameter("@MethodConst0",x2),new SugarParameter("@Const2",1) }, "DateValue error"); } @@ -319,9 +366,9 @@ namespace OrmTest.UnitTest 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() { - new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",11),new SugarParameter("@Const3",x2), - new SugarParameter("@MethodConst2",DateType.Millisecond) + base.Check(value, pars, "((DATEADD(Millisecond,@MethodConst1,@MethodConst0)) = @Const3 )", new List() { + new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",11),new SugarParameter("@Const3",x2) + }, "DateAddByType error"); } private void DateAddDay() @@ -334,7 +381,39 @@ namespace OrmTest.UnitTest var pars = expContext.Parameters; base.Check(value, pars, "((DATEADD(day,@MethodConst1,@MethodConst0)) = @Const2 )", new List() { new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",1),new SugarParameter("@Const2",x2) - }, "DateIsSameByType error"); + }, "DateAddDay error"); + + DateAddDay2(); + DateAddDay3(); + } + + private void DateAddDay2() + { + var x2 = DateTime.Now; + Expression> exp = it =>it.Datetime2.Value.AddHours(10) == x2; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "((DATEADD(Hour,@MethodConst1,[Datetime2])) = @Const2 )", new List() { + new SugarParameter("@MethodConst1",10) + ,new SugarParameter("@Const2",x2) + }, "DateAddDay2 error"); + } + + private void DateAddDay3() + { + var x2 = DateTime.Now; + Expression> exp = it => x2.AddHours(1) == x2; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "((DATEADD(Hour,@MethodConst2,@MethodConst1)) = @Const3 )", new List() { + new SugarParameter("@MethodConst2",1), + new SugarParameter("@MethodConst1",x2) + ,new SugarParameter("@Const3",x2) + }, "DateAddDay3 error"); } private void DateIsSameByType() @@ -345,9 +424,8 @@ namespace OrmTest.UnitTest 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() { - new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",x2), - new SugarParameter("@MethodConst2",DateType.Millisecond) + base.Check(value, pars, " (DATEDIFF(Millisecond,@MethodConst0,@MethodConst1)=0) ", new List() { + new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",x2) }, "DateIsSameByType error"); } private void DateIsSameByDay() @@ -428,6 +506,18 @@ namespace OrmTest.UnitTest new SugarParameter("@MethodConst0","a") }, "Contains2 error"); } + private void Contains3(string name = "a") + { + Expression> exp = it => !SqlFunc.Contains(it.Name, name)&&it.Id==1; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "(NOT ([Name] like '%'+@MethodConst0+'%') AND( [Id] = @Id1 ))", new List() { + new SugarParameter("@MethodConst0","a"), + new SugarParameter("@Id1",1) + }, "Contains3 error"); + } private void ExtendContainsArray() { var array = new string[] { "1", "2" }.ToList(); @@ -575,7 +665,17 @@ namespace OrmTest.UnitTest }, "HasNumber error"); } - + private void MappingColumn() { + Expression> exp = it => SqlFunc.MappingColumn(it.Id,"Name") == 1; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "(Name = @Const1 )", new List() + { + new SugarParameter("@Const1",1) + }, "MappingColumn error"); + } private void IIF() { Expression> exp = it => SqlFunc.IIF(it.Id == 1, 1, 2)==1; @@ -607,6 +707,48 @@ namespace OrmTest.UnitTest new SugarParameter("@Const3",1) }, "IIF2 error"); } + + private void IIF3() + { + Expression> 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() + { + new SugarParameter("@MethodConst0","a"), + new SugarParameter("@MethodConst1",true), + new SugarParameter("@MethodConst2",false), + new SugarParameter("@Const3",true) + }, "IIF3 error"); + } + + private void IIF4() + { + Expression> 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 ( 1 = 1 ) THEN [Bool1] ELSE [Bool2] END ) = @Const0 )", new List() + { + new SugarParameter("@Const0",true) + }, "IIF4 error"); + } + + private void IIF5() + { + Expression> exp = it => SqlFunc.IIF(true,Convert.ToBoolean(it.Datetime1), SqlFunc.ToBool(it.Datetime1)) == false; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "(( CASE WHEN ( 1 = 1 ) THEN CAST([Datetime1] AS BIT) ELSE CAST([Datetime1] AS BIT) END ) = @Const0 )", new List() + { + new SugarParameter("@Const0",false) + }, "IIF5 error"); + } } } diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/ExpressionTest/Select.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/ExpressionTest/Select.cs index 4686721ce..37f5aa217 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/ExpressionTest/Select.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/ExpressionTest/Select.cs @@ -22,6 +22,10 @@ namespace OrmTest.UnitTest for (int i = 0; i < base.Count; i++) { single(); + single2(); + single3(); + single4(); + single5(); Multiple(); singleDynamic(); MultipleDynamic(); @@ -33,37 +37,42 @@ namespace OrmTest.UnitTest { Expression> exp = (it, school) => new Student() { Name = "a", Id = it.Id, SchoolId = school.Id, TestId = it.Id + 1 }; ExpressionContext expContext = new ExpressionContext(); + expContext.IsSingle = false; expContext.Resolve(exp, ResolveExpressType.SelectMultiple); var selectorValue = expContext.Result.GetString(); var pars = expContext.Parameters; base.Check( selectorValue, pars, - @" @constant1 AS Name , it.Id AS Id , school.Id AS SchoolId , ( it.Id + 1 ) AS TestId ", + @" @constant0 AS [Name] , [it].[Id] AS [Id] , [school].[Id] AS [SchoolId] , ( [it].[Id] + @Id1 ) AS [TestId] ", new List(){ - new SugarParameter("@constant1","a")}, + new SugarParameter("@constant0","a"), + new SugarParameter("@Id1",1) + }, "Select.Multiple Error"); } - private void MultipleDynamic() + private void MultipleDynamic() { Expression> exp = (it, school) => new { Name = "a", Id = it.Id / 2, SchoolId = school.Id }; ExpressionContext expContext = new ExpressionContext(); + expContext.IsSingle = false; expContext.Resolve(exp, ResolveExpressType.SelectMultiple); var selectorValue = expContext.Result.GetString(); var pars = expContext.Parameters; base.Check( selectorValue, pars, - @" @constant1 AS Name , ( it.Id / 2 ) AS Id , school.Id AS SchoolId ", + @" @constant0 AS [Name] , ( [it].[Id] / @Id1 ) AS [Id] , [school].[Id] AS [SchoolId] ", new List(){ - new SugarParameter("@constant1","a")}, + new SugarParameter("@constant0","a"), + new SugarParameter("@Id1", 2)}, "Select.MultipleDynamic Error"); } private void single() { int p = 1; - Expression> exp = it => new Student() { Name = "a", Id = it.Id, SchoolId = p,TestId=it.Id+1 }; + Expression> exp = it => new Student() { Name = "a", Id = it.Id, SchoolId = p,TestId=it.Id+11 }; ExpressionContext expContext = new ExpressionContext(); expContext.Resolve(exp, ResolveExpressType.SelectSingle); var selectorValue = expContext.Result.GetString(); @@ -71,17 +80,75 @@ namespace OrmTest.UnitTest base.Check( selectorValue, pars, - @" @constant1 AS Name , Id AS Id , @constant3 AS SchoolId , ( Id + 1 ) AS TestId ", + @" @constant0 AS [Name] , [Id] AS [Id] , @constant1 AS [SchoolId] , ( [Id] + @Id2 ) AS [TestId] ", new List(){ - new SugarParameter("@constant1","a"), - new SugarParameter("@constant3",1)}, + new SugarParameter("@constant0","a"), + new SugarParameter("@constant1",1), + new SugarParameter("@Id2",11 ) }, "Select.single Error"); } + private void single2(int p=1) + { + Expression> exp = it => new Student() { Name = "a", Id = it.Id, SchoolId = p, TestId = it.Id + 11 }; + ExpressionContext expContext = new ExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.SelectSingle); + var selectorValue = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check( + selectorValue, + pars, + @" @constant0 AS [Name] , [Id] AS [Id] , @constant1 AS [SchoolId] , ( [Id] + @Id2 ) AS [TestId] ", + new List(){ + new SugarParameter("@constant0","a"), + new SugarParameter("@constant1",1), + new SugarParameter("@Id2",11 ) }, + "Select.single Error"); + } + private void single3(int p = 1) + { + Expression> exp = it => new DataTestInfo() { Datetime1=DateTime.Now, String=it.Name}; + ExpressionContext expContext = new ExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.SelectSingle); + var selectorValue = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check( + @" @constant0 AS [Datetime1] , [Name] AS [String] ", null,selectorValue,null, + "Select.single3 Error"); + } + + private void single4(int p = 1) + { + Expression> exp = it => it.CreateTime.HasValue; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.IsSingle = false; + expContext.Resolve(exp, ResolveExpressType.WhereMultiple); + var selectorValue = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check( + @"( [it].[CreateTime]<>'' AND [it].[CreateTime] IS NOT NULL )", null, selectorValue, null, + "Select.single4 Error"); + } + + private void single5() + { + var p =(DateTime?) DateTime.Now; + Expression> exp = it => p.HasValue; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.IsSingle = false; + expContext.Resolve(exp, ResolveExpressType.WhereMultiple); + var selectorValue = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check( + @"( @constant0<>'' AND @constant0 IS NOT NULL )", new List() { + new SugarParameter("@constant0",p) + }, selectorValue, pars, + "Select.single4 Error"); + } private void singleDynamic() { string a = "a"; - Expression> exp = it => new { x = it.Id, shoolid = 1, name = a,p=it.Id*1 }; + Expression> exp = it => new { x = it.Id, shoolid = 1, name = a,p=it.Id*2 }; ExpressionContext expContext = new ExpressionContext(); expContext.Resolve(exp, ResolveExpressType.SelectSingle); var selectorValue = expContext.Result.GetString(); @@ -89,11 +156,12 @@ namespace OrmTest.UnitTest base.Check( selectorValue, pars, - @" Id AS x , @constant2 AS shoolid , @constant3 AS name , ( Id * 1 ) AS p ", + @" [Id] AS [x] , @constant0 AS [shoolid] , @constant1 AS [name] , ( [Id] * @Id2 ) AS [p] ", new List(){ - new SugarParameter("@constant2",1), - new SugarParameter("@constant3","a")}, - "Select.single Error"); + new SugarParameter("@constant0",1), + new SugarParameter("@constant1","a"), + new SugarParameter("@Id2",2)}, + "Select.singleDynamic Error"); } } } diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/ExpressionTest/Where.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/ExpressionTest/Where.cs index fc6f74d56..f6476cb51 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/ExpressionTest/Where.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/ExpressionTest/Where.cs @@ -21,6 +21,16 @@ namespace OrmTest.UnitTest base.Begin(); for (int i = 0; i < base.Count; i++) { + + whereSingle23(); + whereSingle22(); + whereSingle21(); + whereSingle20(); + whereSingle19(); + whereSingle18(); + whereSingle17(); + whereSingle16(); + whereSingle15(); whereSingle1(); whereSingle2(); whereSingle3(); @@ -35,6 +45,7 @@ namespace OrmTest.UnitTest whereSingle12(); whereSingle13(); whereSingle14(); + whereSingle15(); WhereMultiple1(); WhereMultiple2(); @@ -249,6 +260,124 @@ 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"); + } + + private void whereSingle16() + { + Dictionary dic = new Dictionary(); + dic.Add("key", "x1"); + Expression> exp = it => it.String == dic["key"]; + ExpressionContext expContext = new ExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "( [String] = @Const0 )", new List() + { + new SugarParameter("@Const0",dic["key"]) + }, "whereSingle16"); + } + + private void whereSingle17() + { + Expression> exp = it =>true&&it.String.Contains("a"); + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "(( 1 = 1 ) AND ([String] like '%'+@MethodConst1+'%') )", new List() + { + new SugarParameter("@MethodConst1","a") + }, "whereSingle17"); + } + + private void whereSingle18() + { + Expression> exp = it => !it.Bool1; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "NOT ( [Bool1]=1 ) ", new List() + { + + }, "whereSingle18"); + } + private void whereSingle19() + { + Expression> exp = it => it.Bool2.Value==false; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "( [Bool2] = @Value0 )", new List() + { + new SugarParameter("@Value0",false) + }, "whereSingle19"); + } + private void whereSingle20() + { + Expression> exp = it => it.Bool2.Value == it.Bool1; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "( [Bool2] = [Bool1] )", new List() + { + + }, "whereSingle19"); + } + + private void whereSingle21() + { + Expression> exp = it => it.Bool2.Value; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "( [Bool2]=1 )", new List() + { + + }, "whereSingle21"); + } + + private void whereSingle22() + { + Expression> exp = it => !it.Bool2.Value; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "NOT ( [Bool2]=1 ) ", new List() + { + + }, "whereSingle22"); + } + + private void whereSingle23() + { + decimal? val = 1; + Expression> exp = it => it.Decimal2==val.Value; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(); + expContext.Resolve(exp, ResolveExpressType.WhereSingle); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "( [Decimal2] = @Const0 )", new List() + { + new SugarParameter("@Const0",val) + }, "whereSingle23"); + } } public class WhereConst diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Insert.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Insert.cs index bb7a1b0f0..ecd4ccb8a 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Insert.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Insert.cs @@ -116,12 +116,37 @@ new List() { insertObj.Name = null; var t10 = db.Insertable(insertObj).ExecuteCommand(); - } - public SqlSugarClient GetInstance() - { - SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }); - return db; + var t11 = db.Insertable(new MyStudent() { Id = 1, Name = "张三" }).AS("Student").ToSql(); + base.Check(@"INSERT INTO [Student] + ([Name]) + VALUES + (@Name) ;SELECT SCOPE_IDENTITY();", new List() { + new SugarParameter("@Name","张三") + }, t11.Key, t11.Value, "Insert t11 error"); + + + var t12 = db.Insertable(new { Name = "a" }).ToSql(); + base.Check(@"INSERT INTO [STudent] + ([Name]) + VALUES + (@Name) ;SELECT SCOPE_IDENTITY();", new List() { + new SugarParameter("@Name","a") + }, t12.Key, t12.Value, "Insert t12 error"); + + var t13 = db.Insertable(new Dictionary() { {"id",0 },{ "name","2"} }).ToSql(); + base.Check(@"INSERT INTO [STudent] + ([Name]) + VALUES + (@Name) ;SELECT SCOPE_IDENTITY();", new List() { + new SugarParameter("@Name","2") + }, t13.Key, t13.Value, "Insert t13 error"); } } + + public class MyStudent { + + public int Id { get; set; } + public string Name { get; set; } + } } diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Mapping .cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Mapping .cs index a00b8e4f3..f1ef5314c 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Mapping .cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Mapping .cs @@ -8,7 +8,7 @@ using System.Threading.Tasks; namespace OrmTest.UnitTest { - public class Mapping:UnitTestBase + public class Mapping : UnitTestBase { private Mapping() { } public Mapping(int eachCount) @@ -16,30 +16,53 @@ namespace OrmTest.UnitTest this.Count = eachCount; } - public void Init() { + public void Init() + { var db = GetInstance(); - var t1= db.Queryable().Where(it=>it.Id==1).ToSql(); - base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent] WHERE ( [ID] = @Id0 ) ", null, t1.Key, null,"Mapping t1 error"); + var t1 = db.Queryable().Where(it => it.Id == 1).ToSql(); + base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent] WHERE ( [ID] = @Id0 ) ", null, t1.Key, null, "Mapping t1 error"); db.MappingColumns.Add("Id", "id", "School"); var t2 = db.Queryable((st, sc) => new object[] { JoinType.Left,st.SchoolId==sc.Id }) .Where(st => st.Id == 1) - .Where((st,sc) => sc.Id == 1) - .Where((st,sc) => sc.Id == st.Id) + .Where((st, sc) => sc.Id == 1) + .Where((st, sc) => sc.Id == st.Id) .GroupBy(st => st.Id) - .GroupBy((st,sc) => sc.Id).OrderBy(st => st.Id,OrderByType.Asc) - .Select((st,sc)=> new { stid=st.Id,scid=sc.Id}).ToSql(); + .GroupBy((st, sc) => sc.Id).OrderBy(st => st.Id, OrderByType.Asc) + .Select((st, sc) => new { stid = st.Id, scid = sc.Id }).ToSql(); base.Check(@"SELECT [st].[ID] AS [stid] , [sc].[id] AS [scid] FROM [STudent] st Left JOIN [School] sc ON ( [st].[SchoolId] = [sc].[id] ) WHERE ( [st].[ID] = @Id0 ) AND ( [sc].[id] = @Id1 ) AND ( [sc].[id] = [st].[ID] )GROUP BY [st].[ID],[sc].[id] ORDER BY [st].[ID] ASC ", null, t2.Key, null, " Mapping t2 error"); var x2 = GetInstance(); + + var q = x2.Queryable().AS("t"); + var t3 = q.ToSql(); + var t4 = q.ToSql(); + base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [t] ", null, t3.Key, null, "Mapping t3 error"); + base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [t] ", null, t4.Key, null, "Mapping t3 error"); + + var x3 = GetInstance2(); + x3.MappingTables.Add("Student", "studenT"); + int count = 0; + var t5 = x3.Queryable().ToPageList(1,2,ref count); } - public SqlSugarClient GetInstance() + public new SqlSugarClient GetInstance() { - SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() {InitKeyType=InitKeyType.Attribute, ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }); + SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { InitKeyType = InitKeyType.Attribute, ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }); + return db; + } + public SqlSugarClient GetInstance2() + { + SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { InitKeyType = InitKeyType.Attribute, ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }); + db.Ado.IsEnableLogEvent = true; + db.Ado.LogEventStarting = (sql, pars) => + { + Console.WriteLine(sql + "\r\n" + db.RewritableMethods.SerializeObject(pars)); + Console.WriteLine(); + }; return db; } } diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Query/JoinQuery.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Query/JoinQuery.cs index 3e943679e..60f3fb2c1 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Query/JoinQuery.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Query/JoinQuery.cs @@ -23,10 +23,67 @@ namespace OrmTest.UnitTest Q1(); Q2(); Q3(); + Q4(); + q5(); + q6(); + q7(); } base.End("Method Test"); } + private void q6() + { + using (var db = GetInstance()) + { + var join6 = db.Queryable((st, sc) => new object[] { + JoinType.Left,st.SchoolId==sc.Id + }).Select((st, sc) => new ViewModelStudent { Name = st.Name, SchoolId = SqlFunc.AggregateMin(sc.Id) }).ToSql(); + + string sql = @"SELECT [st].[Name] AS [Name] , MIN([sc].[Id]) AS [SchoolId] FROM [STudent] st Left JOIN [School] sc ON ( [st].[SchoolId] = [sc].[Id] ) "; + base.Check(sql, null, join6.Key, null, "join 6 Error"); + } + } + + private void q7() + { + using (var db = GetInstance()) + { + var join7 = db.Queryable((st, sc) => new object[] { + JoinType.Left,st.SchoolId==sc.Id + }).Select((st, sc) => new ViewModelStudent { Name = st.Name, SchoolId = SqlFunc.AggregateMin(sc.Id*1) }).ToSql(); + + string sql = @"SELECT [st].[Name] AS [Name] , MIN(( [sc].[Id] * @Id0 )) AS [SchoolId] FROM [STudent] st Left JOIN [School] sc ON ( [st].[SchoolId] = [sc].[Id] ) "; + base.Check(sql, new List() { + new SugarParameter("@Id0",1) + }, join7.Key, join7.Value, "join 7 Error"); + } + } + + private void q5() + { + using (var db = GetInstance()) + { + db.MappingTables.Add("School", "SchoolTable"); + var join5= db.Queryable((st, sc) => st.SchoolId == sc.Id).Select(st => st) + .GroupBy(st=> new{ st.Id,st.Name }) + .ToSql(); + string sql = @"SELECT st.* FROM [STudent] st ,[SchoolTable] sc WHERE ( [st].[SchoolId] = [sc].[Id] )GROUP BY [st].[ID],[st].[Name] "; + base.Check(sql, null, join5.Key, null, "join 5 Error"); + } + } + + private void Q4() + { + using (var db = GetInstance()) + { + db.MappingTables.Add("School", "SchoolTable"); + var join4 = db.Queryable((st, sc) => st.SchoolId == sc.Id).Select(st=>st).ToSql(); + string sql = @"SELECT st.* FROM [STudent] st ,[SchoolTable] sc WHERE ( [st].[SchoolId] = [sc].[Id] ) "; + base.Check(sql, null, join4.Key, null, "join 4 Error"); + } + } + + private void Q3() { using (var db = GetInstance()) @@ -69,7 +126,7 @@ namespace OrmTest.UnitTest } - public SqlSugarClient GetInstance() + public new SqlSugarClient GetInstance() { SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer }); db.Ado.IsEnableLogEvent = true; diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Query/SelectQuery.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Query/SelectQuery.cs index 73a6fc1ab..73f44cfbb 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Query/SelectQuery.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Query/SelectQuery.cs @@ -79,16 +79,23 @@ namespace OrmTest.UnitTest new List() { new SugarParameter("@Id0",0) }, t3.Key, t3.Value, "select t3 Error"); + + + db.Ado.IsEnableLogEvent = true; + db.Ado.LogEventStarting = (sql, pars) => + { + base.Check(" SELECT COUNT(1) FROM (SELECT [st].[ID] FROM [STudent] st Left JOIN [School] sc ON ( [st].[SchoolId] = [sc].[Id] ) Left JOIN [School] sc2 ON ( [sc2].[Id] = [sc].[Id] ) GROUP BY [st].[ID] ) CountTable ", + null, sql, null, "select t4 Error"); + }; + + var t4 = db.Queryable((st, sc, sc2) => new object[] { + JoinType.Left,st.SchoolId==sc.Id, + JoinType.Left,sc2.Id==sc.Id + }).GroupBy(st => st.Id).Select(st=>st.Id).Count(); #endregion } } - - public SqlSugarClient GetInstance() - { - SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer }); - return db; - } } } diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Query/SingleQuery.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Query/SingleQuery.cs index 0278eb20d..4bf37e5d4 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Query/SingleQuery.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Query/SingleQuery.cs @@ -35,29 +35,28 @@ namespace OrmTest.UnitTest var t2 = db.Queryable().With(SqlWith.NoLock).ToSql(); base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent] WITH(NOLOCK)", null, t2.Key, null, "single t2 Error"); - var t3 = db.Queryable().OrderBy(it => it.Id).ToSql(); + var t3 = db.Queryable().OrderBy(it=>it.Id).ToSql(); base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent] ORDER BY [ID] ASC", null, t3.Key, null, "single t3 Error"); var t4 = db.Queryable().OrderBy(it => it.Id).Take(3).ToSql(); base.Check(@"SELECT * FROM (SELECT [ID],[SchoolId],[Name],[CreateTime],ROW_NUMBER() OVER(ORDER BY [ID] ASC) AS RowIndex FROM [STudent] ) T WHERE RowIndex BETWEEN 1 AND 3", null, t4.Key, null, "single t4 Error"); var t5 = db.Queryable().OrderBy(it => it.Id).Skip(3).ToSql(); - base.Check(@"SELECT * FROM (SELECT [ID],[SchoolId],[Name],[CreateTime],ROW_NUMBER() OVER(ORDER BY [ID] ASC) AS RowIndex FROM [STudent] ) T WHERE RowIndex BETWEEN 4 AND 9223372036854775807", null, t5.Key, null, "single t5 Error"); + base.Check(@"SELECT * FROM (SELECT [ID],[SchoolId],[Name],[CreateTime],ROW_NUMBER() OVER(ORDER BY [ID] ASC) AS RowIndex FROM [STudent] ) T WHERE RowIndex BETWEEN 4 AND 9223372036854775807", null, t5.Key,null, "single t5 Error"); int pageIndex = 2; int pageSize = 10; - var t6 = db.Queryable().OrderBy(it => it.Id, OrderByType.Desc).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToSql(); + var t6 = db.Queryable().OrderBy(it => it.Id,OrderByType.Desc).Skip((pageIndex-1)*pageSize).Take(pageSize).ToSql(); base.Check(@"SELECT * FROM (SELECT [ID],[SchoolId],[Name],[CreateTime],ROW_NUMBER() OVER(ORDER BY [ID] DESC) AS RowIndex FROM [STudent] ) T WHERE RowIndex BETWEEN 11 AND 20", null, t6.Key, null, "single t6 Error"); - int studentCount = db.Ado.GetInt("select count(1) from Student"); - var countIsSuccess = db.Queryable().Count() == studentCount; - if (!countIsSuccess) - { + int studentCount=db.Ado.GetInt("select count(1) from Student"); + var countIsSuccess=db.Queryable().Count()== studentCount; + if (!countIsSuccess) { throw new Exception(" single countIsSuccess Error"); } - var t7 = db.Queryable().OrderBy(it => it.Id, OrderByType.Desc).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToPageList(pageIndex, pageSize, ref studentCount); + var t7 = db.Queryable().OrderBy(it => it.Id, OrderByType.Desc).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToPageList(pageIndex,pageSize,ref studentCount); countIsSuccess = studentCount == db.Queryable().OrderBy(it => it.Id, OrderByType.Desc).Skip((pageIndex - 1) * pageSize).Take(pageSize * pageIndex).Count(); if (!countIsSuccess) { @@ -65,7 +64,7 @@ namespace OrmTest.UnitTest } int studentMin = db.Ado.GetInt("select min(id) from Student"); - var minIsSuccess = db.Queryable().Min(it => it.Id) == studentMin; + var minIsSuccess = db.Queryable().Min(it=>it.Id) == studentMin; if (!minIsSuccess) { throw new Exception("single minIsSuccess Error"); @@ -93,28 +92,31 @@ namespace OrmTest.UnitTest } var t8 = db.Queryable() - .Where(it => it.Id == 1) - .WhereIF(true, it => SqlFunc.Contains(it.Name, "a")) - .OrderBy(it => it.Id, OrderByType.Desc).Skip((pageIndex - 1) * pageSize).Take(pageSize).With(SqlWith.NoLock).ToSql(); + .Where(it=>it.Id==1) + .WhereIF(true,it=> SqlFunc.Contains(it.Name,"a")) + .OrderBy(it => it.Id, OrderByType.Desc).Skip((pageIndex - 1) * pageSize).Take(pageSize ).With(SqlWith.NoLock).ToSql(); base.Check(@"SELECT * FROM (SELECT [ID],[SchoolId],[Name],[CreateTime],ROW_NUMBER() OVER(ORDER BY [ID] DESC) AS RowIndex FROM [STudent] WITH(NOLOCK) WHERE ( [ID] = @Id0 ) AND ([Name] like '%'+@MethodConst1+'%') ) T WHERE RowIndex BETWEEN 11 AND 20", new List() { new SugarParameter("@Id0",1),new SugarParameter("@MethodConst1","a") - }, t8.Key, t8.Value, "single t8 Error"); + }, t8.Key, t8.Value,"single t8 Error"); var t9 = db.Queryable() .In(1) - .Select(it => new { it.Id, it.Name, x = it.Id }).ToSql(); + .Select(it => new { it.Id, it.Name,x=it.Id }).ToSql(); base.Check("SELECT [ID] AS [Id] , [Name] AS [Name] , [ID] AS [x] FROM [STudent] WHERE [Id] IN (@InPara0) ", new List() { - new SugarParameter("@InPara0",1) }, t9.Key, t9.Value, "single t9 error"); + new SugarParameter("@InPara0",1) },t9.Key,t9.Value, "single t9 error"); + + var t10 = db.Queryable().Select(it => new StudentEnum() { Id = SqlFunc.GetSelfAndAutoFill(it.Id) }).ToSql(); + base.Check("SELECT * FROM [STudent] ", null, t10.Key, t10.Value, "single t10 error"); + + var t11= db.Queryable().GroupBy("id").OrderBy("id").Select("id").ToSql(); + base.Check("SELECT id FROM [STudent] GROUP BY id ORDER BY id ", null, t11.Key, t11.Value, "single t11 error"); + + + var t12 = db.Queryable().Where(it=>it.Id!=null).ToSql(); + base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent] WHERE ( [ID] IS NOT NULL )", null, t12.Key, t12.Value, "single t12 error"); } } - - - public SqlSugarClient GetInstance() - { - SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer }); - return db; - } } } diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Setting/AutoClose.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Setting/AutoClose.cs index 49d43a396..338a29184 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Setting/AutoClose.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Setting/AutoClose.cs @@ -23,10 +23,5 @@ namespace OrmTest.UnitTest var x = db.Queryable().ToList(); } } - public SqlSugarClient GetInstance() - { - SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }); - return db; - } } } diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Setting/MapColumn.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Setting/MapColumn.cs index 5b3301226..341a5e3b4 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Setting/MapColumn.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Setting/MapColumn.cs @@ -9,10 +9,6 @@ namespace OrmTest.UnitTest { public class MapColumn : UnitTestBase { - public SqlSugarClient GetInstance() - { - SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer }); - return db; - } + } } diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Setting/MapTable.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Setting/MapTable.cs index f5b2b11e7..84d35bc48 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Setting/MapTable.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Setting/MapTable.cs @@ -19,10 +19,5 @@ namespace OrmTest.UnitTest var x = db.Queryable().ToList(); } } - public SqlSugarClient GetInstance() - { - SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }); - return db; - } } } diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/UnitTestBase.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/UnitTestBase.cs index 286075238..1aeea8b30 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/UnitTestBase.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/UnitTestBase.cs @@ -45,5 +45,11 @@ namespace OrmTest.UnitTest } } } + + public SqlSugarClient GetInstance() + { + SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }); + return db; + } } } \ No newline at end of file diff --git a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Update.cs b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Update.cs index 366938bf6..bde5ffe24 100644 --- a/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Update.cs +++ b/Src/Asp.NetCore/SqlServerTest/src/SqlServerTest/UnitTest/Update.cs @@ -124,12 +124,42 @@ namespace OrmTest.UnitTest t10.Value, "Update 10 error" ); + var t11 = db.Updateable().UpdateColumns(it => new DataTestInfo() { Datetime1=DateTime.MaxValue }).Where(it => it.Int1 == 11).ToSql(); + base.Check(@"UPDATE [DataTestInfo] SET + [Datetime1] = @constant0 WHERE ( [Int1] = @Int11 )", new List() { + new SugarParameter("@Int11",11), + new SugarParameter("@constant0",DateTime.MaxValue) }, + t11.Key, + t11.Value, + "Update 11 error" + ); + + var t12 = db.Updateable().UpdateColumns(it => new DataTestInfo() { Int2 = it.Int2+1 }).Where(it => it.Int1 == 11).ToSql(); + base.Check(@"UPDATE [DataTestInfo] SET + [Int2] = ( [Int2] + @Const0 ) WHERE ( [Int1] = @Int11 )", new List() { + new SugarParameter("@Int11",11), + new SugarParameter("@Const0",1) }, + t12.Key, + t12.Value, + "Update 12 error" + ); + + + + var t13 = db.Updateable(new { Name = "a", id=1 }).ToSql(); + base.Check(@"UPDATE [STudent] SET + [Name]=@Name WHERE [Id]=@Id", new List() { + new SugarParameter("@Name","a"), + new SugarParameter("@ID",1) + }, t13.Key, t13.Value, "Insert t13 error"); + + var t14 = db.Updateable(new Dictionary() { { "id", 0 }, { "name", "2" } }).ToSql(); + base.Check(@"UPDATE [STudent] SET + [Name]=@Name WHERE [Id]=@Id", new List() { + new SugarParameter("@Name", "2"), + new SugarParameter("@ID", 0) + }, t14.Key, t14.Value, "Insert t14 error"); } - public SqlSugarClient GetInstance() - { - SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }); - return db; - } } }