From b1be604dc2f3e808aa0b91db21c39bb7cf0cf511 Mon Sep 17 00:00:00 2001 From: skx <610262374@qq.com> Date: Sun, 15 Nov 2020 00:39:23 +0800 Subject: [PATCH] Update demo --- .../SqlSeverTest/Demo/Demo1_Queryable.cs | 18 +- .../SqlSeverTest/Demo/Demo3_Insertable.cs | 263 +++++++++++++++++- .../SqlSeverTest/Demo/Demo7_Ado.cs | 26 +- .../SqlSeverTest/Demo/DemoD_DbFirst.cs | 2 +- .../SqlSeverTest/Models/SubInsertTest.cs | 108 +++++++ .../SqlSeverTest/UnitTest/Main.cs | 7 +- .../SqlSeverTest/UnitTest/UQueryable.cs | 65 +++++ .../SqlSeverTest/UnitTest/UQueue.cs | 41 +++ .../SqlSeverTest/UnitTest/UThread.cs | 12 +- .../SqlSeverTest/UnitTest/Updateable.cs | 46 +++ 10 files changed, 569 insertions(+), 19 deletions(-) create mode 100644 Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Models/SubInsertTest.cs create mode 100644 Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/UQueue.cs diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Demo/Demo1_Queryable.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Demo/Demo1_Queryable.cs index fa82db4e7..f1a07abd1 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Demo/Demo1_Queryable.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Demo/Demo1_Queryable.cs @@ -30,7 +30,7 @@ namespace OrmTest Console.WriteLine("#### Examples Start ####"); var db = GetInstance(); var dbTime = db.GetDate(); - var getAll = db.Queryable().ToList(); + var getAll = db.Queryable().Where(it=> SqlFunc.EqualsNull(it.Name,null)).ToList(); var getOrderBy = db.Queryable().OrderBy(it => it.Name,OrderByType.Desc).ToList(); var getOrderBy2 = db.Queryable().OrderBy(it => it.Id).OrderBy(it => it.Name, OrderByType.Desc).ToList(); var getOrderBy3 = db.Queryable().OrderBy(it =>new { it.Name,it.Id}).ToList(); @@ -124,6 +124,11 @@ namespace OrmTest Console.WriteLine("#### SqlFunc Start ####"); var db = GetInstance(); var index= db.Queryable().Select(it => SqlFunc.CharIndex("a", "cccacc")).First(); + var list = db.Queryable().Select(it =>new ViewOrder() + { + + Id = SqlFunc.AggregateSum(SqlFunc.IF(it.Id > 0).Return(1).End(0)) + }).ToList(); Console.WriteLine("#### SqlFunc End ####"); } @@ -153,6 +158,11 @@ namespace OrmTest //Child=(select * from parent where ParentId=it.id) .Mapper(it => it.Child, it => it.Id, it => it.Parent.ParentId) .ToList(); + + + db.Insertable(new Tree() { Id = 222, Name = "child11", ParentId = 11 }).ExecuteCommand(); + var tree = db.Queryable().ToTree(it=>it.Child,it=>it.ParentId,0); + //one to one var list2 = db.Queryable().Mapper(it => it.Order, it => it.OrderId).ToList(); @@ -222,6 +232,12 @@ namespace OrmTest var query2 = db.Queryable(); var list3=db.Queryable(query1, query2,JoinType.Left, (p1, p2) => p1.CustomId == p2.Id).Select().ToList(); + + var query3 = db.Union( + db.Queryable().Where(it => it.Name.Contains("a")), + db.Queryable().Where(it => it.Name.Contains("b")) + ).ToList(); + Console.WriteLine("#### Join Table End ####"); } diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Demo/Demo3_Insertable.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Demo/Demo3_Insertable.cs index e366d0f3e..da3938b36 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Demo/Demo3_Insertable.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Demo/Demo3_Insertable.cs @@ -30,8 +30,8 @@ namespace OrmTest } }); - var insertObj = new Order() { Id = 1, Name = "order1",Price=0 }; - var updateObjs = new List { + var insertObj = new Order() { Id = 1, Name = "order1", Price = 0 }; + var insertObjs = new List { new Order() { Id = 11, Name = "order11", Price=0 }, new Order() { Id = 12, Name = "order12" , Price=0} }; @@ -45,12 +45,269 @@ namespace OrmTest db.Insertable(insertObj).InsertColumns("Name", "Price").ExecuteReturnIdentity(); //ignore null columns - db.Insertable(updateObjs).ExecuteCommand();//get change row count + db.Insertable(insertObjs).ExecuteCommand();//get change row count //Use Lock db.Insertable(insertObj).With(SqlWith.UpdLock).ExecuteCommand(); + insertObjs = new List { + new Order() { Id = 11, Name = "order11", Price=1 }, + new Order() { Id = 12, Name = "order12" , Price=20, CreateTime=DateTime.Now, CustomId=1} + }; + db.Insertable(insertObjs).UseSqlServer().ExecuteBlueCopy(); + + db.CodeFirst.InitTables(); + db.CodeFirst.InitTables(); + db.DbMaintenance.TruncateTable("RootTable0"); + db.DbMaintenance.TruncateTable("TwoItem"); + db.DbMaintenance.TruncateTable("TwoItem2"); + db.DbMaintenance.TruncateTable("TwoItem3"); + db.DbMaintenance.TruncateTable("ThreeItem2"); + Console.WriteLine("SubInsert Start"); + + db.Insertable(new Order() + { + Name = "订单 1", + CustomId = 1, + Price = 100, + CreateTime = DateTime.Now, + Id = 0, + Items = new List() { + new OrderItem(){ + CreateTime=DateTime.Now, + OrderId=0, + Price=1, + ItemId=1 + }, + new OrderItem(){ + CreateTime=DateTime.Now, + OrderId=0, + Price=2, + ItemId=2 + } + } + }) + .AddSubList(it => it.Items.First().OrderId).ExecuteReturnPrimaryKey(); + + + + db.Insertable(new List() { + new RootTable0() + { + Name="aa", + TwoItem2=new TwoItem2() { + Id="1", + ThreeItem2=new List(){ + new ThreeItem2(){ Name="a", TwoItem2Id="1" }, + new ThreeItem2(){ Id=2, Name="a2", TwoItem2Id="2" } + } + }, + TwoItem=new TwoItem() + { + Name ="itema" , + RootId=2 + }, + TwoItem3=new List(){ + new TwoItem3(){ Id=0, Name="a",Desc="" }, + + } + }, + new RootTable0() + { + Name="bb", + TwoItem2=new TwoItem2() { + Id="2" + }, + TwoItem=new TwoItem() + { + Name ="itemb" , + RootId=2, + + }, + TwoItem3=new List(){ + new TwoItem3(){ Id=1, Name="b",Desc="" }, + new TwoItem3(){ Id=2, Name="b1",Desc="1" }, + } + } + }) + .AddSubList(it => it.TwoItem.RootId) + .AddSubList(it => new SubInsertTree() + { + Expression = it.TwoItem2.RootId, + ChildExpression = new List() { + new SubInsertTree(){ + Expression=it.TwoItem2.ThreeItem2.First().TwoItem2Id + } + } + }) + .AddSubList(it => it.TwoItem3) + .ExecuteReturnPrimaryKey(); + + SubNoIdentity(db); + SubIdentity(db); Console.WriteLine("#### Insertable End ####"); + + } + + private static void SubNoIdentity(SqlSugarClient db) + { + db.CodeFirst.InitTables(); + db.DbMaintenance.TruncateTable("Country"); + db.DbMaintenance.TruncateTable("Province"); + db.DbMaintenance.TruncateTable("City"); + db.Insertable(new List() + { + new Country(){ + Id=1, + Name="中国", + Provinces=new List(){ + new Province{ + Id=1001, + Name="江苏", + citys=new List(){ + new City(){ Id=1001001, Name="南通" }, + new City(){ Id=1001002, Name="南京" } + } + }, + new Province{ + Id=1002, + Name="上海", + citys=new List(){ + new City(){ Id=1002001, Name="徐汇" }, + new City(){ Id=1002002, Name="普陀" } + } + }, + new Province{ + Id=1003, + Name="北京", + citys=new List(){ + new City(){ Id=1003001, Name="北京A" }, + new City(){ Id=1003002, Name="北京B" } + } + } + } + }, + new Country(){ + Name="美国", + Id=2, + Provinces=new List() + { + new Province(){ + Name="美国小A", + Id=20001 + }, + new Province(){ + Name="美国小b", + Id=20002 + } + } + }, + new Country(){ + Name="英国", + Id=3 + } + }) + .AddSubList(it => new SubInsertTree() + { + Expression = it.Provinces.First().CountryId, + ChildExpression = new List() { + new SubInsertTree(){ + Expression=it.Provinces.First().citys.First().ProvinceId + } + } + }) + .ExecuteReturnPrimaryKey(); + + var list = db.Queryable() + .Mapper(it => it.Provinces, it => it.Provinces.First().CountryId) + .Mapper(it => + { + foreach (var item in it.Provinces) + { + item.citys = db.Queryable().Where(y => y.ProvinceId == item.Id).ToList(); + } + }) + .ToList(); + } + private static void SubIdentity(SqlSugarClient db) + { + db.CodeFirst.InitTables(); + db.DbMaintenance.TruncateTable("Country1"); + db.DbMaintenance.TruncateTable("Province1"); + db.DbMaintenance.TruncateTable("City1"); + db.Insertable(new List() + { + new Country1(){ + Id=1, + Name="中国", + Provinces=new List(){ + new Province1{ + Id=1001, + Name="江苏", + citys=new List(){ + new City1(){ Id=1001001, Name="南通" }, + new City1(){ Id=1001002, Name="南京" } + } + }, + new Province1{ + Id=1002, + Name="上海", + citys=new List(){ + new City1(){ Id=1002001, Name="徐汇" }, + new City1(){ Id=1002002, Name="普陀" } + } + }, + new Province1{ + Id=1003, + Name="北京", + citys=new List(){ + new City1(){ Id=1003001, Name="北京A" }, + new City1(){ Id=1003002, Name="北京B" } + } + } + } + }, + new Country1(){ + Name="美国", + Id=2, + Provinces=new List() + { + new Province1(){ + Name="美国小A", + Id=20001 + }, + new Province1(){ + Name="美国小b", + Id=20002 + } + } + }, + new Country1(){ + Name="英国", + Id=3 + } + }) + .AddSubList(it => new SubInsertTree() + { + Expression = it.Provinces.First().CountryId, + ChildExpression = new List() { + new SubInsertTree(){ + Expression=it.Provinces.First().citys.First().ProvinceId + } + } + }) + .ExecuteReturnPrimaryKey(); + + var list = db.Queryable() + .Mapper(it => it.Provinces, it => it.Provinces.First().CountryId) + .Mapper(it => + { + foreach (var item in it.Provinces) + { + item.citys = db.Queryable().Where(y => y.ProvinceId == item.Id).ToList(); + } + }) + .ToList(); } } } diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Demo/Demo7_Ado.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Demo/Demo7_Ado.cs index a4a7ba2db..9a7c48d12 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Demo/Demo7_Ado.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Demo/Demo7_Ado.cs @@ -38,12 +38,28 @@ namespace OrmTest //sql var dt2 = db.Ado.GetDataTable("select * from [order] where @id>0 or name=@name", new { id = 1, name = "2" }); - //Stored Procedure - //var dt3 = db.Ado.UseStoredProcedure().GetDataTable("sp_school", new { name = "张三", age = 0 }); - //var nameP = new SugarParameter("@name", "张三"); - //var ageP = new SugarParameter("@age", null, true);//isOutput=true - //var dt4 = db.Ado.UseStoredProcedure().GetDataTable("sp_school", nameP, ageP); + //create sp + db.Ado.ExecuteCommand(@" + if object_id('up_user') is not null + drop proc up_user;"); + db.Ado.ExecuteCommand(@" + create proc up_user + @id int, + @name varchar(10) ='' output + as + + begin + set @name='abc' + select @id as id + end + "); + //get output + var dt3 = db.Ado.UseStoredProcedure().GetDataTable("up_user", new { name = "张三", id = 0 }); + var IdP = new SugarParameter("@id", 1); + var NameP = new SugarParameter("@name", null, true);//isOutput=true + var dt4 = db.Ado.UseStoredProcedure().GetDataTable("up_user", IdP, NameP); + var outputValue = NameP.Value; //There are many methods to under db.ado diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Demo/DemoD_DbFirst.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Demo/DemoD_DbFirst.cs index ae84773e2..db57e0938 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Demo/DemoD_DbFirst.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Demo/DemoD_DbFirst.cs @@ -65,7 +65,7 @@ namespace OrmTest } db.DbFirst.IsCreateAttribute().CreateClassFile("c:\\Demo\\8", "Models"); - db.DbFirst.WhereColumns(it => it.ToUpper()!="ID").CreateClassFile("c:\\Demo\\9", "Models"); + //Use Razor Template //db.DbFirst.UseRazorAnalysis(RazorFirst.DefaultRazorClassTemplate).CreateClassFile(""); diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Models/SubInsertTest.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Models/SubInsertTest.cs new file mode 100644 index 000000000..702f93a93 --- /dev/null +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/Models/SubInsertTest.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + public class RootTable0 + { + [SqlSugar.SugarColumn(IsPrimaryKey =true,IsIdentity =true)] + public int Id { get; set; } + public string Name { get; set; } + [SqlSugar.SugarColumn(IsIgnore =true)] + public TwoItem TwoItem { get; set; } + [SqlSugar.SugarColumn(IsIgnore = true)] + public TwoItem2 TwoItem2 { get; set; } + [SqlSugar.SugarColumn(IsIgnore = true)] + public List TwoItem3 { get; set; } + } + public class TwoItem + { + [SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + public int RootId { get; set; } + public string Name { get; set; } + } + public class TwoItem2 + { + [SqlSugar.SugarColumn(IsPrimaryKey = true)] + public string Id { get; set; } + public int RootId { get; set; } + [SqlSugar.SugarColumn(IsIgnore =true)] + public List ThreeItem2 { get; set; } + } + public class TwoItem3 + { + [SqlSugar.SugarColumn(IsPrimaryKey = true)] + public int Id { get; set; } + public string Name { get; set; } + public string Desc { get; set; } + } + public class ThreeItem2 + { + [SqlSugar.SugarColumn(IsPrimaryKey = true)] + + public int Id { get; set; } + public string Name { get; set; } + public string TwoItem2Id { get; set; } + } + + public class Country + { + [SqlSugar.SugarColumn(IsPrimaryKey = true)] + public int Id { get; set; } + public string Name { get; set; } + + [SqlSugar.SugarColumn(IsIgnore = true)] + public List Provinces { get; set; } + } + + public class Province + { + [SqlSugar.SugarColumn(IsPrimaryKey =true)] + public int Id { get; set; } + public string Name { get; set; } + public int CountryId { get; set; } + [SqlSugar.SugarColumn(IsIgnore = true)] + public List citys { get; set; } + } + + public class City + { + [SqlSugar.SugarColumn(IsPrimaryKey = true)] + public int Id { get; set; } + public int ProvinceId { get; set; } + public string Name { get; set; } + } + + + public class Country1 + { + [SqlSugar.SugarColumn(IsPrimaryKey = true,IsIdentity =true)] + public int Id { get; set; } + public string Name { get; set; } + + [SqlSugar.SugarColumn(IsIgnore = true)] + public List Provinces { get; set; } + } + + public class Province1 + { + [SqlSugar.SugarColumn(IsPrimaryKey = true,IsIdentity =true)] + public int Id { get; set; } + public string Name { get; set; } + public int CountryId { get; set; } + [SqlSugar.SugarColumn(IsIgnore = true)] + public List citys { get; set; } + } + + public class City1 + { + [SqlSugar.SugarColumn(IsPrimaryKey = true,IsIdentity =true)] + public int Id { get; set; } + public int ProvinceId { get; set; } + public string Name { get; set; } + } +} diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/Main.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/Main.cs index c81b373f5..7befb2146 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/Main.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/Main.cs @@ -31,15 +31,16 @@ namespace OrmTest } public static void Init() { + Queue(); CodeFirst(); Updateable(); Json(); Ado(); Queryable(); QueryableAsync(); - Thread(); - Thread2(); - Thread3(); + //Thread(); + //Thread2(); + //Thread3(); } } } diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/UQueryable.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/UQueryable.cs index aa0906ec0..f8c122219 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/UQueryable.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/UQueryable.cs @@ -9,6 +9,7 @@ namespace OrmTest { public partial class NewUnitTest { + public static Unit_SYS_USER UserLoginInfo => new Unit_SYS_USER() { XH = "10010" }; public static void Queryable() { @@ -78,8 +79,58 @@ namespace OrmTest CheckMan = saleOrderInfo.CheckMan, CheckTime = DateTime.Now }, o => o.OrderSn == saleOrderInfo.OrderSn && o.OrderStatus != 1); + + var ids = Enumerable.Range(1, 11).ToList(); + var list8=Db.Queryable().Where(it => SqlFunc.ContainsArrayUseSqlParameters(ids, it.Id)).ToList(); + + var result2 = Db.Queryable().Where(o => o.XH == UserLoginInfo.XH).Select(o => o.XH).ToSql(); + + var x = Db.Queryable().Select(it => new BoolTest2() + { + a =it.a + }).ToSql(); + UValidate.Check(x.Key, "SELECT [a] AS [a] FROM [BoolTest1] ", "Queryable"); + x = Db.Queryable().Select(it => new BoolTest1() + { + a = it.a.Value + }).ToSql(); + UValidate.Check(x.Key, "SELECT [a] AS [a] FROM [BoolTest2] ", "Queryable"); } + + /// + /// 系统用户表实体模型类 + /// + [SugarTable("Unit_SYS_USER")] + + public class Unit_SYS_USER + { + /// + /// 序号 + /// + private string _XH; + + /// + /// 序号【主键唯一标识,自动生成】 + /// + [SugarColumn(ColumnName = "XH", + ColumnDataType = "VARCHAR2", + IsPrimaryKey = true, + IsNullable = false, + Length = 50, + ColumnDescription = "序号【主键唯一标识,自动生成】")] + public string XH + { + get + { + return _XH; + } + set + { + _XH = value; + } + } + } public static class IEnumerbleContains { public static IEnumerable Data() @@ -320,4 +371,18 @@ namespace OrmTest public Guid? Id { get; set; } } } + + internal class BoolTest1 + { + public BoolTest1() + { + } + + public bool a { get; set; } + } + + public class BoolTest2 + { + public bool? a { get; set; } + } } diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/UQueue.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/UQueue.cs new file mode 100644 index 000000000..773d3d8ad --- /dev/null +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/UQueue.cs @@ -0,0 +1,41 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace OrmTest +{ + public partial class NewUnitTest + { + public static void Queue() + { + test1(); + test2(); + } + private static void test2() + { + var db = Db; + db.AddQueue("select 11"); + db.Queryable().Where(it => false).AddQueue(); + db.AddQueue("select 12"); + var list = db.SaveQueuesAsync(); + list.Wait(); + UValidate.Check(list.Result.Item1[0], "11", "Queue"); + UValidate.Check(list.Result.Item2.Count(), 0, "Queue"); + UValidate.Check(list.Result.Item3[0], "12", "Queue"); + } + + private static void test1() + { + var db = Db; + db.AddQueue("select 11"); + db.Queryable().Where(it => false).AddQueue(); + db.AddQueue("select 12"); + var list = db.SaveQueues(); + UValidate.Check(list.Item1[0], "11", "Queue"); + UValidate.Check(list.Item2.Count(), 0, "Queue"); + UValidate.Check(list.Item3[0], "12", "Queue"); + } + } +} diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/UThread.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/UThread.cs index 48bf67da5..5972a5360 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/UThread.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/UThread.cs @@ -309,8 +309,8 @@ namespace OrmTest { for (int i = 0; i < 100; i++) { - singleDb.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait(); - System.Threading.Thread.Sleep(1); + //singleDb.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait(); + //System.Threading.Thread.Sleep(1); No Support } }); @@ -318,8 +318,8 @@ namespace OrmTest { for (int i = 0; i < 100; i++) { - singleDb.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait(); - System.Threading.Thread.Sleep(10); + //singleDb.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait(); + //System.Threading.Thread.Sleep(10); No Support } }); @@ -327,8 +327,8 @@ namespace OrmTest { for (int i = 0; i < 100; i++) { - singleDb.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait(); - System.Threading.Thread.Sleep(6); + //singleDb.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait(); + //System.Threading.Thread.Sleep(6); No Support } }); diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/Updateable.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/Updateable.cs index 2397d6032..dd4faecbd 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/Updateable.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest/UnitTest/Updateable.cs @@ -54,8 +54,54 @@ namespace OrmTest UValidate.Check(sql.Key, @"UPDATE [Diary] SET [TypeID] = @Const0 WHERE ( [ID] = @ID1 )", "Updateable"); + + sql = Db.Updateable().SetColumns(it => new UnitDiary() + { + TypeID = saveDiary.TypeID, + }).Where(it => it.ID == saveDiary.ID).ToSql(); + UValidate.Check(sql.Key, @"UPDATE [Diary] SET + [TypeID] = @Const0 WHERE ( [ID] = @ID1 )", "Updateable"); + + sql=Db.Updateable().SetColumns(it => new NullTest() + { + p = true + + }).Where(it => it.id == 1).ToSql(); + UValidate.Check(sql.Key, @"UPDATE [NullTest] SET + [p] = @Const0 WHERE ( [id] = @id1 )", "Updateable"); + sql = Db.Updateable().SetColumns(it => new NullTest() + { + p2 = true + + }).Where(it => it.id == 1).ToSql(); + UValidate.Check(sql.Key, @"UPDATE [NullTest] SET + [p2] = @Const0 WHERE ( [id] = @id1 )", "Updateable"); + + + Db.Updateable() + .SetColumns(it => it.Name == "a") + .SetColumns(it => it.CreateTime == DateTime.Now) + .SetColumns(it=>it.Price==1).Where(it=>it.Id==1).ExecuteCommand(); + + + Db.Updateable() + .SetColumns(it =>new Order{ Name="a",CreateTime=DateTime.Now }) + .SetColumns(it => it.Price==1).Where(it => it.Id == 1).ExecuteCommand(); + + + + Db.Updateable() + .SetColumns(it => new Order { Name = "a", CreateTime = DateTime.Now }) + .SetColumns(it => new Order() { Price=1 }).Where(it => it.Id == 1).ExecuteCommand(); } } + public class NullTest + { + public int id { get; set; } + public bool? p { get; set; } + public bool p2 { get; set; } + + } public class UnitSaveDiary { public int ID { get; set; }