From e05b8c99e81e4faffab76c0d6d740b4a16051a3f Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Thu, 12 Jun 2025 15:19:50 +0800 Subject: [PATCH] Update mongodb --- Src/Asp.NetCore2/MongoDbTest/Program.cs | 1 + .../MongoDbTest/UnitTest/Cases.cs | 21 ++++++++ .../MongoDbTest/UnitTest/SingleQuery.cs | 51 +++++++++++++++++++ .../MongoDb/Queryable/MongoDbQueryable.cs | 4 ++ .../MongoDb/SqlBuilder/MongoDbQueryBuilder.cs | 7 ++- 5 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 Src/Asp.NetCore2/MongoDbTest/UnitTest/Cases.cs create mode 100644 Src/Asp.NetCore2/MongoDbTest/UnitTest/SingleQuery.cs diff --git a/Src/Asp.NetCore2/MongoDbTest/Program.cs b/Src/Asp.NetCore2/MongoDbTest/Program.cs index 18a551363..f25297793 100644 --- a/Src/Asp.NetCore2/MongoDbTest/Program.cs +++ b/Src/Asp.NetCore2/MongoDbTest/Program.cs @@ -1,5 +1,6 @@ using MongoDbTest; //MongoDb还在开发中预计6月30号前可以使用 +Cases.Init(); OrmTest.Init(); AdoTest.Init(); ExpTest.Init(); diff --git a/Src/Asp.NetCore2/MongoDbTest/UnitTest/Cases.cs b/Src/Asp.NetCore2/MongoDbTest/UnitTest/Cases.cs new file mode 100644 index 000000000..52a17ec65 --- /dev/null +++ b/Src/Asp.NetCore2/MongoDbTest/UnitTest/Cases.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Serialization; + +namespace MongoDbTest +{ + public class Cases + { + public static void Init() + { + SingleQuery.Init(); + } + public static void ThrowUnitError() + { + throw new Exception("unit error"); + } + } +} diff --git a/Src/Asp.NetCore2/MongoDbTest/UnitTest/SingleQuery.cs b/Src/Asp.NetCore2/MongoDbTest/UnitTest/SingleQuery.cs new file mode 100644 index 000000000..b79aa721e --- /dev/null +++ b/Src/Asp.NetCore2/MongoDbTest/UnitTest/SingleQuery.cs @@ -0,0 +1,51 @@ +using MongoDB.Bson.Serialization.IdGenerators; +using SqlSugar.MongoDb; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.WebSockets; +using System.Text; +using System.Threading.Tasks; + +namespace MongoDbTest +{ + public class SingleQuery + { + public static void Init() + { + var db = DBHelper.DbHelper.GetNewDb(); + + db.DbMaintenance.TruncateTable(); + db.DbMaintenance.TruncateTable(); + + var schoolId = db.Insertable(new School() { Name = "XX大学" }).ExecuteReturnPkList().First(); + var studentId=db.Insertable(new Student() { Name = "jack",SchoolId= schoolId }).ExecuteReturnPkList().First(); + var studentData = db.Queryable().Where(it => it.Id == studentId).First(); + var schoolData = db.Queryable().Where(it => it.Id == schoolId).First(); + if (studentData.Name != "jack" || schoolData.Name!= "XX大学") Cases.ThrowUnitError(); + + db.Insertable(new School() { Name = "zz大学" }).ExecuteCommand(); + db.Insertable(new School() { Name = "yy大学" }).ExecuteCommand(); + var tableCount = db.Queryable().ToList().Count; + if(tableCount!=3) Cases.ThrowUnitError(); + + db.Insertable(new School() { Name = "zz大学" }).ExecuteCommand(); + db.Insertable(new School() { Name = "yy大学" }).ExecuteCommand(); + var count = 0; + var list = db.Queryable().OrderBy(it=>it.Name).ToPageList(1,2,ref count); + if(count != 5||list.Count!=2) Cases.ThrowUnitError(); + } + } + [SqlSugar.SugarTable("UnitStudent123131")] + public class Student : MongoDbBase + { + public string Name { get; set; } + + public string SchoolId { get; set; } + } + [SqlSugar.SugarTable("UnitSchool123131")] + public class School : MongoDbBase + { + public string Name{ get; set; } + } +} diff --git a/Src/Asp.NetCore2/SqlSugar.MongoDbCore/MongoDb/Queryable/MongoDbQueryable.cs b/Src/Asp.NetCore2/SqlSugar.MongoDbCore/MongoDb/Queryable/MongoDbQueryable.cs index 9ac9e8167..807c1695e 100644 --- a/Src/Asp.NetCore2/SqlSugar.MongoDbCore/MongoDb/Queryable/MongoDbQueryable.cs +++ b/Src/Asp.NetCore2/SqlSugar.MongoDbCore/MongoDb/Queryable/MongoDbQueryable.cs @@ -8,6 +8,10 @@ namespace SqlSugar.MongoDb { public class MongoDbQueryable : QueryableProvider { + public override int Count() + { + return base.Count(); + } public override ISugarQueryable With(string withString) { return this; diff --git a/Src/Asp.NetCore2/SqlSugar.MongoDbCore/MongoDb/SqlBuilder/MongoDbQueryBuilder.cs b/Src/Asp.NetCore2/SqlSugar.MongoDbCore/MongoDb/SqlBuilder/MongoDbQueryBuilder.cs index fa2c33ff7..dc2807c1c 100644 --- a/Src/Asp.NetCore2/SqlSugar.MongoDbCore/MongoDb/SqlBuilder/MongoDbQueryBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar.MongoDbCore/MongoDb/SqlBuilder/MongoDbQueryBuilder.cs @@ -192,7 +192,12 @@ namespace SqlSugar.MongoDb return sb.ToString(); } - + public override string ToCountSql(string sql) + { + sql=sql.TrimEnd(']'); + sql += "{ \"$count\": \"TotalCount\" }]"; + return sql; + } #endregion #region Get SQL Partial