diff --git a/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite b/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite
index 80f2adcdd..7cb75676e 100644
Binary files a/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite and b/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite differ
diff --git a/Src/Asp.Net/SqliteTest/SqliteTest.csproj b/Src/Asp.Net/SqliteTest/SqliteTest.csproj
index 7724f0ef5..2dea3fe8f 100644
--- a/Src/Asp.Net/SqliteTest/SqliteTest.csproj
+++ b/Src/Asp.Net/SqliteTest/SqliteTest.csproj
@@ -77,6 +77,11 @@
+
+
+
+
+
@@ -99,6 +104,7 @@
+
diff --git a/Src/Asp.Net/SqliteTest/UnitTest/Main.cs b/Src/Asp.Net/SqliteTest/UnitTest/Main.cs
index 26475559b..d3c482337 100644
--- a/Src/Asp.Net/SqliteTest/UnitTest/Main.cs
+++ b/Src/Asp.Net/SqliteTest/UnitTest/Main.cs
@@ -31,6 +31,7 @@ namespace OrmTest
}
public static void Init()
{
+ UnitNavUpdatee12.Init();
UnitFilterdafa.Init();
UInsert3.Init();
USaveable.Init();
diff --git a/Src/Asp.Net/SqliteTest/UnitTest/Models/Book.cs b/Src/Asp.Net/SqliteTest/UnitTest/Models/Book.cs
new file mode 100644
index 000000000..f9885c02e
--- /dev/null
+++ b/Src/Asp.Net/SqliteTest/UnitTest/Models/Book.cs
@@ -0,0 +1,18 @@
+using SqlSugar;
+using System.Security.Principal;
+
+namespace Test.Model
+{
+ [SugarTable("BookA01")]
+ public class Book
+ {
+ [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
+ public int? Id { get; set; }
+
+ [SugarColumn(ColumnName = "Name")]
+ public string Name { get; set; }
+
+ [SugarColumn(ColumnName = "PId")]
+ public int? PId { get; set; }
+ }
+}
diff --git a/Src/Asp.Net/SqliteTest/UnitTest/Models/Playground.cs b/Src/Asp.Net/SqliteTest/UnitTest/Models/Playground.cs
new file mode 100644
index 000000000..ff2405bd3
--- /dev/null
+++ b/Src/Asp.Net/SqliteTest/UnitTest/Models/Playground.cs
@@ -0,0 +1,18 @@
+using SqlSugar;
+using System.Security.Principal;
+
+namespace Test.Model
+{
+ [SugarTable("PlaygroundA01")]
+ public class Playground
+ {
+ [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
+ public int? Id { get; set; }
+
+ [SugarColumn(ColumnName = "Name")]
+ public string Name { get; set; }
+
+ [SugarColumn(ColumnName = "PId")]
+ public int? PId { get; set; }
+ }
+}
diff --git a/Src/Asp.Net/SqliteTest/UnitTest/Models/Room.cs b/Src/Asp.Net/SqliteTest/UnitTest/Models/Room.cs
new file mode 100644
index 000000000..1321eb9db
--- /dev/null
+++ b/Src/Asp.Net/SqliteTest/UnitTest/Models/Room.cs
@@ -0,0 +1,18 @@
+using SqlSugar;
+using System.Security.Principal;
+
+namespace Test.Model
+{
+ [SugarTable("RoomA01")]
+ public class Room
+ {
+ [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
+ public int? Id { get; set; }
+
+ [SugarColumn(ColumnName = "Name")]
+ public string Name { get; set; }
+
+ [SugarColumn(ColumnName = "PId")]
+ public int? PId { get; set; }
+ }
+}
diff --git a/Src/Asp.Net/SqliteTest/UnitTest/Models/School.cs b/Src/Asp.Net/SqliteTest/UnitTest/Models/School.cs
new file mode 100644
index 000000000..76a25f42c
--- /dev/null
+++ b/Src/Asp.Net/SqliteTest/UnitTest/Models/School.cs
@@ -0,0 +1,25 @@
+using SqlSugar;
+using System.Collections.Generic;
+using System.Security.Principal;
+
+namespace Test.Model
+{
+ [SugarTable("SchoolA01")]
+ public class School
+ {
+ [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
+ public int? Id { get; set; }
+
+ [SugarColumn(ColumnName = "Name")]
+ public string Name { get; set; }
+
+ [SugarColumn(ColumnName = "PId")]
+ public int? PId { get; set; }
+
+ [Navigate(NavigateType.OneToMany, nameof(Room.PId))]
+ public List Rooms { get; set; }
+
+ [Navigate(NavigateType.OneToMany, nameof(Playground.PId))]
+ public List Playgrounds { get; set; }
+ }
+}
diff --git a/Src/Asp.Net/SqliteTest/UnitTest/Models/Student.cs b/Src/Asp.Net/SqliteTest/UnitTest/Models/Student.cs
new file mode 100644
index 000000000..c40c920eb
--- /dev/null
+++ b/Src/Asp.Net/SqliteTest/UnitTest/Models/Student.cs
@@ -0,0 +1,24 @@
+using SqlSugar;
+using System.Collections.Generic;
+
+namespace Test.Model
+{
+ [SugarTable("StudentA01")]
+ public class Student
+ {
+ [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
+ public int? Id { get; set; }
+
+ [SugarColumn(ColumnName = "Name")]
+ public string Name { get; set; }
+
+ [SugarColumn(ColumnName = "Age")]
+ public string Age { get; set; }
+
+ [Navigate(NavigateType.OneToMany, nameof(Book.PId))]
+ public List Books { get; set; }
+
+ [Navigate(NavigateType.OneToMany, nameof(School.PId))]
+ public List Schools { get; set; }
+ }
+}
diff --git a/Src/Asp.Net/SqliteTest/UnitTest/UnitNavUpdatee12.cs b/Src/Asp.Net/SqliteTest/UnitTest/UnitNavUpdatee12.cs
new file mode 100644
index 000000000..d3cbab9fa
--- /dev/null
+++ b/Src/Asp.Net/SqliteTest/UnitTest/UnitNavUpdatee12.cs
@@ -0,0 +1,99 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.Design;
+using System.Linq;
+using System.Net.Http.Headers;
+using System.Text;
+using System.Threading.Tasks;
+using Test.Model;
+namespace OrmTest
+{
+ public class UnitNavUpdatee12
+ {
+ public static void Init()
+ {
+ var db = NewUnitTest.Db;
+ db.CodeFirst.InitTables();
+
+ Demo1(db);
+ Demo2(db);
+ }
+
+ private static void Demo1(SqlSugarClient db)
+ {
+ db.DbMaintenance.TruncateTable();
+ db.InsertNav(new Student()
+ {
+ Age = "11",
+ Name = "a",
+ Books = new List() { new Book() { Name = "book" } },
+ Schools = new List() {
+ new School(){
+ Name="学校",
+ Playgrounds=new List()
+ {
+ new Playground(){ Name="学校GR"}
+
+ } ,
+ Rooms=new List(){
+ new Room() { Name= "学校ROOM" } } }
+
+ }
+
+ })
+ .Include(s => s.Books)
+ // .Include(s => s.Schools)
+ .Include(s => s.Schools).ThenInclude(sc => sc.Rooms)
+ .Include(s => s.Schools).ThenInclude(sc => sc.Playgrounds)
+ .ExecuteCommand();
+ var data = db.Queryable()
+ .Includes(s => s.Books)
+ .Includes(s => s.Schools, s => s.Rooms)
+ .Includes(s => s.Schools, s => s.Playgrounds)
+ .ToList();
+ if (data.Count != 1 || data.First().Schools.Count != 1 || data.First().Schools.First().Rooms.Count() != 1 || data.First().Schools.First().Playgrounds.Count() != 1)
+ {
+ throw new Exception("unit error");
+ }
+ }
+ private static void Demo2(SqlSugarClient db)
+ {
+ db.DbMaintenance.TruncateTable();
+ db.InsertNav(new Student()
+ {
+ Age = "11",
+ Name = "a",
+ Books = new List() { new Book() { Name = "book" } },
+ Schools = new List() {
+ new School(){
+ Name="学校",
+ Playgrounds=new List()
+ {
+ new Playground(){ Name="学校GR"}
+
+ } ,
+ Rooms=new List(){
+ new Room() { Name= "学校ROOM" } } }
+
+ }
+
+ })
+
+ // .Include(s => s.Schools)
+ .Include(s => s.Schools).ThenInclude(sc => sc.Rooms)
+ .Include(s => s.Schools).ThenInclude(sc => sc.Playgrounds)
+ .Include(s => s.Books)
+ .ExecuteCommand();
+ var data = db.Queryable()
+ .Includes(s => s.Books)
+ .Includes(s => s.Schools, s => s.Rooms)
+ .Includes(s => s.Schools, s => s.Playgrounds)
+ .ToList();
+ if (data.Count != 1 || data.First().Schools.Count != 1 || data.First().Schools.First().Rooms.Count() != 1 || data.First().Schools.First().Playgrounds.Count() != 1)
+ {
+ throw new Exception("unit error");
+ }
+ }
+ }
+}