From 4deb4dc356046903cf00f3246369ca49e6e7f7f2 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 23 Aug 2025 20:29:13 +0800 Subject: [PATCH] Update mongodb --- .../MongoDbTest/UnitTest/QueryJsonArray.cs | 103 ++++++++++-------- 1 file changed, 60 insertions(+), 43 deletions(-) diff --git a/Src/Asp.NetCore2/MongoDbTest/UnitTest/QueryJsonArray.cs b/Src/Asp.NetCore2/MongoDbTest/UnitTest/QueryJsonArray.cs index c5633dfe1..d43fedc25 100644 --- a/Src/Asp.NetCore2/MongoDbTest/UnitTest/QueryJsonArray.cs +++ b/Src/Asp.NetCore2/MongoDbTest/UnitTest/QueryJsonArray.cs @@ -15,56 +15,40 @@ namespace MongoDbTest internal static void Init() { var db = DbHelper.GetNewDb(); - db.CodeFirst.InitTables(); - db.DbMaintenance.TruncateTable(); - db.Insertable(new Student() { Age = 1, Name = "tom", SchoolId = "a", Book = new List() { new Book() { CreateTime = DateTime.Now, Price = 21 } } }).ExecuteCommand(); - var data1=db.Queryable().ToList(); - if (data1.First().Book.Count != 1) Cases.ThrowUnitError(); - if (data1.First().Book.First().Price != 21) Cases.ThrowUnitError(); - data1.First().Book.First().Price = 100; - db.Updateable(data1).ExecuteCommand(); - var data2 = db.Queryable().ToList(); - if (data2.First().Book.First().Price != 100) Cases.ThrowUnitError(); - var exp=Expressionable.Create().ToExpression(); - var data3 = db.Queryable().Where(exp).ToList(); - db.Insertable(new Student() { Age = 1, Name = "haha", SchoolId = "1", Book = new List() { new Book() { CreateTime = DateTime.Now, Price = 21 } } }).ExecuteCommand(); - var data4=db.Queryable().Where(it => it.Book.Any(s => s.Price == 21)).ToList(); - if(data4.Count!=1||data4.First().Book.First().Price!=21) Cases.ThrowUnitError(); - var data5 = db.Queryable().Where(it => it.Book.Any(s => s.Price == 21||s.Price==100)).ToList(); - db.DbMaintenance.TruncateTable(); - var id = ObjectId.GenerateNewId()+""; - db.Insertable(new Student() { Age = 1, Name = "a", SchoolId = "1", Book = new List() { new Book() { SId=id, CreateTime = DateTime.Now, Price = 21 } } }).ExecuteCommand(); - db.Insertable(new Student() { Age = 1, Name = "b", SchoolId = "1", Book = new List() { new Book() { SId = id, CreateTime = DateTime.Now, Price = 100 } } }).ExecuteCommand(); - db.Insertable(new Student() { Age = 1, Name = "c", SchoolId = "1", Book = new List() { new Book() { SId = ObjectId.GenerateNewId() + "", CreateTime = DateTime.Now, Price = 21 } } }).ExecuteCommand(); - var data6= db.Queryable().Where(it => it.Book.Any(s => s.Price == 21 &&s.SId==id)).ToList(); - if(data6.Count!=1||data6.First().Name!="a") Cases.ThrowUnitError(); - db.Insertable(new Student() { Age = 99, Name = "price=age", SchoolId = "1", Book = new List() { new Book() { SId = ObjectId.GenerateNewId() + "", CreateTime = DateTime.Now, Price = 99 } } }).ExecuteCommand(); - var data7= db.Queryable().Where(it => it.Book.Any(s => s.Price == it.Age)).ToList(); - var data8 = db.Queryable().Where(it => it.Book.Any(s => it.Age == s.Price)).ToList(); - if(data7.Count != 1 || data8.Count!=1) Cases.ThrowUnitError(); - if (data7.FirstOrDefault().Name!= "price=age" || data8.FirstOrDefault().Name != "price=age") Cases.ThrowUnitError(); - var data9 = db.Queryable().Where(it => it.Book.Any()).ToList(); + + ListClass(db); + + ListValueType(db); + } + + private static void ListValueType(SqlSugarClient db) + { db.CodeFirst.InitTables(); db.DbMaintenance.TruncateTable(); var ids = new List { ObjectId.GenerateNewId() + "" }; - var sid =ObjectId.GenerateNewId() + ""; - db.Insertable(new IdsModel() {name="a", Ids =ids,Students=new List() { + var sid = ObjectId.GenerateNewId() + ""; + db.Insertable(new IdsModel() + { + name = "a", + Ids = ids, + Students = new List() { new Student(){ Id =sid} - } }).ExecuteCommand(); + } + }).ExecuteCommand(); db.Insertable(new IdsModel() { name = "b", - Ids = new List { ObjectId.GenerateNewId()+"" }, + Ids = new List { ObjectId.GenerateNewId() + "" }, Students = new List() { new Student(){ Id =ObjectId.GenerateNewId()+""} } }).ExecuteCommand(); var x = ids.Last(); - var list2=db.Queryable().Where(it => it.Ids.Contains(x)).ToList(); + var list2 = db.Queryable().Where(it => it.Ids.Contains(x)).ToList(); if (list2.Count != 1) Cases.ThrowUnitError(); if (!list2.First().Ids.Contains(x)) Cases.ThrowUnitError(); var list3 = db.Queryable().Where(it => !it.Ids.Contains(x)).ToList(); - if(list3.Any(s=>s.Ids.Contains(x))) Cases.ThrowUnitError(); + if (list3.Any(s => s.Ids.Contains(x))) Cases.ThrowUnitError(); db.Insertable(new IdsModel() { name = "b", @@ -74,19 +58,52 @@ namespace MongoDbTest } }).ExecuteCommand(); var list4 = db.Queryable().Select(it => it.Ids.Count()).ToList(); - if (list4.Last()!=2) Cases.ThrowUnitError(); - var list6= db.Queryable().Select(it => new IdsModel { Students= it.Students }).ToList(); - var list5 = db.Queryable().Select(it => new { it.Students}).ToList(); - if (list5.Last().Students.First().Id!= list6.Last().Students.First().Id) Cases.ThrowUnitError(); + if (list4.Last() != 2) Cases.ThrowUnitError(); + var list6 = db.Queryable().Select(it => new IdsModel { Students = it.Students }).ToList(); + var list5 = db.Queryable().Select(it => new { it.Students }).ToList(); + if (list5.Last().Students.First().Id != list6.Last().Students.First().Id) Cases.ThrowUnitError(); - var p = new List() { new Student() { Age = 100111 } }; + var p = new List() { new Student() { Age = 100111 } }; db.Updateable() - .SetColumns(it => it.Students == p) - .Where(s=>s.name=="b").ExecuteCommand(); - var data=db.Queryable().Where(s => s.name == "b").First(); + .SetColumns(it => it.Students == p) + .Where(s => s.name == "b").ExecuteCommand(); + var data = db.Queryable().Where(s => s.name == "b").First(); if (data.Students.First().Age != 100111) Cases.ThrowUnitError(); } + private static void ListClass(SqlSugarClient db) + { + db.CodeFirst.InitTables(); + db.DbMaintenance.TruncateTable(); + db.Insertable(new Student() { Age = 1, Name = "tom", SchoolId = "a", Book = new List() { new Book() { CreateTime = DateTime.Now, Price = 21 } } }).ExecuteCommand(); + var data1 = db.Queryable().ToList(); + if (data1.First().Book.Count != 1) Cases.ThrowUnitError(); + if (data1.First().Book.First().Price != 21) Cases.ThrowUnitError(); + data1.First().Book.First().Price = 100; + db.Updateable(data1).ExecuteCommand(); + var data2 = db.Queryable().ToList(); + if (data2.First().Book.First().Price != 100) Cases.ThrowUnitError(); + var exp = Expressionable.Create().ToExpression(); + var data3 = db.Queryable().Where(exp).ToList(); + db.Insertable(new Student() { Age = 1, Name = "haha", SchoolId = "1", Book = new List() { new Book() { CreateTime = DateTime.Now, Price = 21 } } }).ExecuteCommand(); + var data4 = db.Queryable().Where(it => it.Book.Any(s => s.Price == 21)).ToList(); + if (data4.Count != 1 || data4.First().Book.First().Price != 21) Cases.ThrowUnitError(); + var data5 = db.Queryable().Where(it => it.Book.Any(s => s.Price == 21 || s.Price == 100)).ToList(); + db.DbMaintenance.TruncateTable(); + var id = ObjectId.GenerateNewId() + ""; + db.Insertable(new Student() { Age = 1, Name = "a", SchoolId = "1", Book = new List() { new Book() { SId = id, CreateTime = DateTime.Now, Price = 21 } } }).ExecuteCommand(); + db.Insertable(new Student() { Age = 1, Name = "b", SchoolId = "1", Book = new List() { new Book() { SId = id, CreateTime = DateTime.Now, Price = 100 } } }).ExecuteCommand(); + db.Insertable(new Student() { Age = 1, Name = "c", SchoolId = "1", Book = new List() { new Book() { SId = ObjectId.GenerateNewId() + "", CreateTime = DateTime.Now, Price = 21 } } }).ExecuteCommand(); + var data6 = db.Queryable().Where(it => it.Book.Any(s => s.Price == 21 && s.SId == id)).ToList(); + if (data6.Count != 1 || data6.First().Name != "a") Cases.ThrowUnitError(); + db.Insertable(new Student() { Age = 99, Name = "price=age", SchoolId = "1", Book = new List() { new Book() { SId = ObjectId.GenerateNewId() + "", CreateTime = DateTime.Now, Price = 99 } } }).ExecuteCommand(); + var data7 = db.Queryable().Where(it => it.Book.Any(s => s.Price == it.Age)).ToList(); + var data8 = db.Queryable().Where(it => it.Book.Any(s => it.Age == s.Price)).ToList(); + if (data7.Count != 1 || data8.Count != 1) Cases.ThrowUnitError(); + if (data7.FirstOrDefault().Name != "price=age" || data8.FirstOrDefault().Name != "price=age") Cases.ThrowUnitError(); + var data9 = db.Queryable().Where(it => it.Book.Any()).ToList(); + } + [SqlSugar.SugarTable("UnitStudentdfsds3zzz1")] public class Student : MongoDbBase {