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