From e0b250a9ba188b7619140a1ca77827b520759c4f Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Wed, 3 Aug 2022 10:44:33 +0800 Subject: [PATCH] Add unit test --- .../SqlServerTest/SqlServerTest.csproj | 1 + Src/Asp.Net/SqlServerTest/UnitTest/Main.cs | 1 + .../SqlServerTest/UnitTest/UnitInsertNav3.cs | 80 +++++++++++++++++++ 3 files changed, 82 insertions(+) create mode 100644 Src/Asp.Net/SqlServerTest/UnitTest/UnitInsertNav3.cs diff --git a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj index 0b2b37981..4f98162e2 100644 --- a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj +++ b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj @@ -97,6 +97,7 @@ + diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs b/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs index 24197d562..11a7b2a6e 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs @@ -31,6 +31,7 @@ namespace OrmTest } public static void Init() { + UnitInsertNav3.Init(); UnitInsertNav2.Init(); UnitInsertNav.Init(); UnitInsertNav.Init(); diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/UnitInsertNav3.cs b/Src/Asp.Net/SqlServerTest/UnitTest/UnitInsertNav3.cs new file mode 100644 index 000000000..52fd3520f --- /dev/null +++ b/Src/Asp.Net/SqlServerTest/UnitTest/UnitInsertNav3.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; + +using SqlSugar; + +namespace OrmTest +{ + public class UnitInsertNav3 + { + public static void Init() + { + var db = NewUnitTest.Db; + //建表 + db.CodeFirst.InitTables(); + db.DbMaintenance.TruncateTable(); + + //插入一级导航数据 + var country = new Country + { + Id = 1, + Provinces = new List { + new Province{ + Id = 1, + CountryId = 1 + }, + } + }; + db.InsertNav(country) + .Include(it => it.Provinces) + .ExecuteCommand(); + + //构造二级导航数据 + country.Provinces[0].Cities = new List + { + new City + { + Id = 1, + ProvinceId = 1 + } + }; + + //用例代码 + var result = db.InsertNav(country) + .Include(it => it.Provinces,new InsertNavOptions() { OneToManyIfExistsNoInsert=true}) + .ThenInclude(it => it.Cities, new InsertNavOptions() { OneToManyIfExistsNoInsert = true }) + .ExecuteCommand();//用例代码 + if (!db.Queryable().Where(it => it.Id == 1).Any()) + throw new Exception("未插入二级导航数据"); + } + + + //建类 + [SugarTable("Unitaaa1Country")] + public class Country + { + [SugarColumn(IsPrimaryKey = true)] + public long Id { get; set; } + [SugarColumn(IsIgnore = true)] + [Navigate(NavigateType.OneToMany, nameof(Province.CountryId))] + public List Provinces { get; set; } + } + [SugarTable("Unitaaa1Province")] + public class Province + { + [SugarColumn(IsPrimaryKey = true)] + public long Id { get; set; } + public long CountryId { get; set; } + [SugarColumn(IsIgnore = true)] + [Navigate(NavigateType.OneToMany, nameof(City.ProvinceId))] + public List Cities { get; set; } + } + [SugarTable("Unitaaa1City")] + public class City + { + [SugarColumn(IsPrimaryKey = true)] + public long Id { get; set; } + public long ProvinceId { get; set; } + } + } +} \ No newline at end of file