From c48af3933f04fd3ac34ea491261ccc3e80c2526b Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sun, 10 Apr 2022 02:30:40 +0800 Subject: [PATCH] Update demo --- Src/Asp.Net/MySqlTest/Demo/Demo1_Queryable.cs | 19 ++++++++++++++++++- Src/Asp.Net/PgSqlTest/Demo/Demo1_Queryable.cs | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/Src/Asp.Net/MySqlTest/Demo/Demo1_Queryable.cs b/Src/Asp.Net/MySqlTest/Demo/Demo1_Queryable.cs index e5a9de22a..a157d7811 100644 --- a/Src/Asp.Net/MySqlTest/Demo/Demo1_Queryable.cs +++ b/Src/Asp.Net/MySqlTest/Demo/Demo1_Queryable.cs @@ -353,7 +353,24 @@ namespace OrmTest var query2 = db.Queryable().Where(it => it.Id == 1); var list7 = query2.Clone().Where(it => it.Name == "jack").ToList();//id=1 and name = jack var list8 = query2.Clone().Where(it => it.Name == "tom").ToList();//id=1 and name = tom - + //无限级高性能导航映射 + var treeRoot = db.Queryable().Where(it => it.Id == 1).ToList(); + db.ThenMapper(treeRoot, item => + { + item.Child = db.Queryable().SetContext(x => x.ParentId, () => item.Id, item).ToList(); + }); + db.ThenMapper(treeRoot.SelectMany(it => it.Child), it => + { + it.Child = db.Queryable().SetContext(x => x.ParentId, () => it.Id, it).ToList(); + }); + db.ThenMapper(treeRoot.SelectMany(it => it.Child).SelectMany(it => it.Child), it => + { + it.Child = db.Queryable().SetContext(x => x.ParentId, () => it.Id, it).ToList(); + }); + db.ThenMapper(treeRoot.SelectMany(it => it.Child).SelectMany(it => it.Child).SelectMany(it => it.Child), it => + { + it.Child = db.Queryable().SetContext(x => x.ParentId, () => it.Id, it).ToList(); + }); Console.WriteLine("#### Condition Screening End ####"); diff --git a/Src/Asp.Net/PgSqlTest/Demo/Demo1_Queryable.cs b/Src/Asp.Net/PgSqlTest/Demo/Demo1_Queryable.cs index 6cbcc410e..e92f19eb8 100644 --- a/Src/Asp.Net/PgSqlTest/Demo/Demo1_Queryable.cs +++ b/Src/Asp.Net/PgSqlTest/Demo/Demo1_Queryable.cs @@ -317,6 +317,24 @@ namespace OrmTest var list7 = query2.Clone().Where(it => it.Name == "jack").ToList();//id=1 and name = jack var list8 = query2.Clone().Where(it => it.Name == "tom").ToList();//id=1 and name = tom + //无限级高性能导航映射 + var treeRoot = db.Queryable().Where(it => it.Id == 1).ToList(); + db.ThenMapper(treeRoot, item => + { + item.Child = db.Queryable().SetContext(x => x.ParentId, () => item.Id, item).ToList(); + }); + db.ThenMapper(treeRoot.SelectMany(it => it.Child), it => + { + it.Child = db.Queryable().SetContext(x => x.ParentId, () => it.Id, it).ToList(); + }); + db.ThenMapper(treeRoot.SelectMany(it => it.Child).SelectMany(it => it.Child), it => + { + it.Child = db.Queryable().SetContext(x => x.ParentId, () => it.Id, it).ToList(); + }); + db.ThenMapper(treeRoot.SelectMany(it => it.Child).SelectMany(it => it.Child).SelectMany(it => it.Child), it => + { + it.Child = db.Queryable().SetContext(x => x.ParentId, () => it.Id, it).ToList(); + }); Console.WriteLine("#### Condition Screening End ####");