From edd85a6381d6b23b85017c04dfd760bfab5805ee Mon Sep 17 00:00:00 2001
From: sunkaixuan <610262374@qq.com>
Date: Mon, 6 Nov 2023 21:44:56 +0800
Subject: [PATCH] Update demo
---
Src/Asp.NetCore2/SqlSeverTest/1_CodeFirst.cs | 134 +++++++++
Src/Asp.NetCore2/SqlSeverTest/2_DbFirst.cs | 136 +++++++++
Src/Asp.NetCore2/SqlSeverTest/3_EasyQuery.cs | 191 +++++++++++++
Src/Asp.NetCore2/SqlSeverTest/4_JoinQuery.cs | 171 +++++++++++
Src/Asp.NetCore2/SqlSeverTest/5_PageQuery.cs | 112 ++++++++
.../SqlSeverTest/6_NavigationPropertyQuery.cs | 268 ++++++++++++++++++
Src/Asp.NetCore2/SqlSeverTest/7_GroupQuery.cs | 74 +++++
Src/Asp.NetCore2/SqlSeverTest/8_Insert.cs | 66 +++++
Src/Asp.NetCore2/SqlSeverTest/9_Update.cs | 88 ++++++
Src/Asp.NetCore2/SqlSeverTest/Program.cs | 92 +++---
.../SqlSeverTest/SqlSeverTest.csproj | 6 -
.../{ => UserTestCases}/Config.cs | 2 +-
.../Demo/Demo0_SqlSugarClient.cs | 1 +
.../Demo/Demo1_Queryable.cs | 3 +-
.../Demo/Demo2_Updateable.cs | 3 +-
.../Demo/Demo3_Insertable.cs | 3 +-
.../Demo/Demo4_Deleteable.cs | 3 +-
.../Demo/Demo5_SqlQueryable.cs | 3 +-
.../{ => UserTestCases}/Demo/Demo6_Queue.cs | 3 +-
.../{ => UserTestCases}/Demo/Demo7_Ado.cs | 3 +-
.../Demo/Demo8_Saveable.cs | 3 +-
.../Demo/Demo9_EntityMain.cs | 3 +-
.../{ => UserTestCases}/Demo/DemoA_DbMain.cs | 3 +-
.../{ => UserTestCases}/Demo/DemoB_Aop.cs | 3 +-
.../{ => UserTestCases}/Demo/DemoD_DbFirst.cs | 3 +-
.../Demo/DemoE_CodeFirst.cs | 3 +-
.../Demo/DemoF_Utilities.cs | 3 +-
.../Demo/DemoG_SimpleClient.cs | 3 +-
.../{ => UserTestCases}/Demo/DemoH_Tenant.cs | 3 +-
.../{ => UserTestCases}/Demo/DemoJ_Report.cs | 3 +-
.../Demo/DemoL_Snowflake.cs | 5 +-
.../Demo/DemoM_UnitOfWork.cs | 0
.../Demo/DemoN_SplitTable.cs | 5 +-
.../Demo/Democ_GobalFilter.cs | 3 +-
.../Models/AttributeTable.cs | 0
.../{ => UserTestCases}/Models/Custom.cs | 0
.../Models/EntityMapper.cs | 0
.../{ => UserTestCases}/Models/Mapper.cs | 0
.../{ => UserTestCases}/Models/Order.cs | 0
.../{ => UserTestCases}/Models/OrderItem.cs | 0
.../Models/SubInsertTest.cs | 0
.../{ => UserTestCases}/Models/TestTree.cs | 0
.../{ => UserTestCases}/Models/Tree.cs | 0
.../{ => UserTestCases}/Models/ViewOrder.cs | 0
.../SqlSeverTest/UserTestCases/Program.cs | 51 ++++
.../UnitTest/AnimalTest.cs | 0
.../UnitTest/CrossDatabase01.cs | 0
.../UnitTest/EntityInfoTest.cs | 3 +-
.../{ => UserTestCases}/UnitTest/Main.cs | 3 +-
.../UnitTest/OneToManyInString.cs | 0
.../{ => UserTestCases}/UnitTest/Test01.cs | 0
.../{ => UserTestCases}/UnitTest/UAdo.cs | 0
.../{ => UserTestCases}/UnitTest/UBulkCopy.cs | 0
.../UnitTest/UCodeFirst.cs | 0
.../{ => UserTestCases}/UnitTest/UCustom01.cs | 3 +-
.../UnitTest/UCustom012.cs | 0
.../UnitTest/UCustom014.cs | 3 +-
.../UnitTest/UCustom015.cs | 3 +-
.../UnitTest/UCustom019.cs | 0
.../{ => UserTestCases}/UnitTest/UCustom02.cs | 0
.../{ => UserTestCases}/UnitTest/UCustom03.cs | 0
.../{ => UserTestCases}/UnitTest/UEnum.cs | 0
.../{ => UserTestCases}/UnitTest/UFilter.cs | 0
.../{ => UserTestCases}/UnitTest/UInsert.cs | 0
.../{ => UserTestCases}/UnitTest/UJson.cs | 0
.../UnitTest/UJsonsdafa.cs | 0
.../UnitTest/UNavDynamic111N.cs | 0
.../UnitTest/UOneManyMany.cs | 0
.../UnitTest/UOneManyMany2.cs | 0
.../UnitTest/UOneManyMany3.cs | 0
.../UnitTest/UOneManyMany4.cs | 0
.../UnitTest/UOneManyMany5.cs | 0
.../UnitTest/UOneManyMany6.cs | 0
.../UnitTest/UOneManyMany7.cs | 0
.../UnitTest/UQueryable.cs | 0
.../UnitTest/UQueryable2.cs | 0
.../UnitTest/UQueryableAsync.cs | 0
.../{ => UserTestCases}/UnitTest/UQueue.cs | 0
.../{ => UserTestCases}/UnitTest/UThread.cs | 3 +-
.../{ => UserTestCases}/UnitTest/UThread2.cs | 0
.../{ => UserTestCases}/UnitTest/UThread3.cs | 0
.../{ => UserTestCases}/UnitTest/UTran.cs | 0
.../{ => UserTestCases}/UnitTest/UValidate.cs | 0
.../UnitTest/UinitCustomConvert.cs | 0
.../UnitTest/UinitUpdateNavOneToOne.cs | 0
.../{ => UserTestCases}/UnitTest/UnitBool.cs | 0
.../UnitTest/UnitBulkMerge.cs | 0
.../UnitTest/UnitCreateNavClass.cs | 0
.../UnitTest/UnitCustom020.cs | 0
.../UnitTest/UnitFilter.cs | 0
.../UnitTest/UnitGridSave.cs | 0
.../UnitTest/UnitManyToMany.cs | 0
.../UnitTest/UnitNavDynamic.cs | 0
.../UnitTest/UnitOneToMany.cs | 0
.../UnitTest/UnitOneToMany2.cs | 0
.../UnitTest/UnitOneToManyUpdate21.cs | 0
.../UnitTest/UnitOneToManyafdaa.cs | 0
.../UnitTest/UnitOneToOneDel.cs | 3 +-
.../UnitTest/UnitOneToOneNAny.cs | 0
.../UnitTest/UnitSplitTask.cs | 0
.../UnitTest/UnitStringToExp.cs | 0
.../UnitTest/UnitSubToList.cs | 3 +-
.../{ => UserTestCases}/UnitTest/UnitTest.cs | 0
.../UnitTest/UnitTestReturnPkList.cs | 0
.../{ => UserTestCases}/UnitTest/UnitTool.cs | 0
.../UnitTest/UnitUpdateColums.cs | 0
.../UnitTest/Unitadfasdfa.cs | 0
.../UnitTest/Unitadfasfa.cs | 0
.../UnitTest/Unitasf1/EmpDepartmentJob.cs | 0
.../UnitTest/Unitasf1/EmpInformation.cs | 0
.../UnitTest/Unitasf1/EmpLicense.cs | 0
.../UnitTest/Unitasf1/EmpLicenseLogOff.cs | 0
.../Unitasf1/PRT_BMS_SA_WEBCON_DOC_V.cs | 0
.../Unitasf1/PRT_BMS_SA_WEBCON_DTL_VP.cs | 0
.../UnitTest/Unitasf1/Unitasf1.cs | 0
.../UnitTest/Unitasf1/entity/app_category.cs | 0
.../UnitTest/Unitasf1/entity/app_comment.cs | 0
.../UnitTest/Unitasf1/entity/app_revision.cs | 0
.../UnitTest/Unitasf1/entity/app_topic.cs | 0
.../UnitTest/Unitasf1/entityMap/app_topic.cs | 0
.../Unitasf1/entityMapDTO/app_topic.cs | 0
.../UnitTest/Unitfafaf231.cs | 3 +-
.../UnitTest/Unitrasdfa.cs | 0
.../UnitTest/UpdateNavOneToOne.cs | 0
.../UnitTest/Updateable.cs | 0
Src/Asp.NetCore2/SqlSeverTest/a1_Delete.cs | 186 ++++++++++++
Src/Asp.NetCore2/SqlSeverTest/a2_Sql.cs | 74 +++++
Src/Asp.NetCore2/SqlSeverTest/a3_Merge.cs | 51 ++++
128 files changed, 1717 insertions(+), 77 deletions(-)
create mode 100644 Src/Asp.NetCore2/SqlSeverTest/1_CodeFirst.cs
create mode 100644 Src/Asp.NetCore2/SqlSeverTest/2_DbFirst.cs
create mode 100644 Src/Asp.NetCore2/SqlSeverTest/3_EasyQuery.cs
create mode 100644 Src/Asp.NetCore2/SqlSeverTest/4_JoinQuery.cs
create mode 100644 Src/Asp.NetCore2/SqlSeverTest/5_PageQuery.cs
create mode 100644 Src/Asp.NetCore2/SqlSeverTest/6_NavigationPropertyQuery.cs
create mode 100644 Src/Asp.NetCore2/SqlSeverTest/7_GroupQuery.cs
create mode 100644 Src/Asp.NetCore2/SqlSeverTest/8_Insert.cs
create mode 100644 Src/Asp.NetCore2/SqlSeverTest/9_Update.cs
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Config.cs (96%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/Demo0_SqlSugarClient.cs (99%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/Demo1_Queryable.cs (99%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/Demo2_Updateable.cs (98%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/Demo3_Insertable.cs (98%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/Demo4_Deleteable.cs (97%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/Demo5_SqlQueryable.cs (96%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/Demo6_Queue.cs (97%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/Demo7_Ado.cs (97%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/Demo8_Saveable.cs (95%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/Demo9_EntityMain.cs (96%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/DemoA_DbMain.cs (96%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/DemoB_Aop.cs (97%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/DemoD_DbFirst.cs (98%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/DemoE_CodeFirst.cs (97%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/DemoF_Utilities.cs (96%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/DemoG_SimpleClient.cs (95%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/DemoH_Tenant.cs (98%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/DemoJ_Report.cs (98%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/DemoL_Snowflake.cs (95%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/DemoM_UnitOfWork.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/DemoN_SplitTable.cs (98%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Demo/Democ_GobalFilter.cs (98%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Models/AttributeTable.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Models/Custom.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Models/EntityMapper.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Models/Mapper.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Models/Order.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Models/OrderItem.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Models/SubInsertTest.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Models/TestTree.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Models/Tree.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/Models/ViewOrder.cs (100%)
create mode 100644 Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Program.cs
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/AnimalTest.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/CrossDatabase01.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/EntityInfoTest.cs (98%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Main.cs (98%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/OneToManyInString.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Test01.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UAdo.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UBulkCopy.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UCodeFirst.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UCustom01.cs (97%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UCustom012.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UCustom014.cs (99%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UCustom015.cs (98%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UCustom019.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UCustom02.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UCustom03.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UEnum.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UFilter.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UInsert.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UJson.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UJsonsdafa.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UNavDynamic111N.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UOneManyMany.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UOneManyMany2.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UOneManyMany3.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UOneManyMany4.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UOneManyMany5.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UOneManyMany6.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UOneManyMany7.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UQueryable.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UQueryable2.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UQueryableAsync.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UQueue.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UThread.cs (99%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UThread2.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UThread3.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UTran.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UValidate.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UinitCustomConvert.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UinitUpdateNavOneToOne.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitBool.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitBulkMerge.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitCreateNavClass.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitCustom020.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitFilter.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitGridSave.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitManyToMany.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitNavDynamic.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitOneToMany.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitOneToMany2.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitOneToManyUpdate21.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitOneToManyafdaa.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitOneToOneDel.cs (96%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitOneToOneNAny.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitSplitTask.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitStringToExp.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitSubToList.cs (99%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitTest.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitTestReturnPkList.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitTool.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UnitUpdateColums.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitadfasdfa.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitadfasfa.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitasf1/EmpDepartmentJob.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitasf1/EmpInformation.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitasf1/EmpLicense.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitasf1/EmpLicenseLogOff.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitasf1/PRT_BMS_SA_WEBCON_DOC_V.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitasf1/PRT_BMS_SA_WEBCON_DTL_VP.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitasf1/Unitasf1.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitasf1/entity/app_category.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitasf1/entity/app_comment.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitasf1/entity/app_revision.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitasf1/entity/app_topic.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitasf1/entityMap/app_topic.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitasf1/entityMapDTO/app_topic.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitfafaf231.cs (98%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Unitrasdfa.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/UpdateNavOneToOne.cs (100%)
rename Src/Asp.NetCore2/SqlSeverTest/{ => UserTestCases}/UnitTest/Updateable.cs (100%)
create mode 100644 Src/Asp.NetCore2/SqlSeverTest/a1_Delete.cs
create mode 100644 Src/Asp.NetCore2/SqlSeverTest/a2_Sql.cs
create mode 100644 Src/Asp.NetCore2/SqlSeverTest/a3_Merge.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/1_CodeFirst.cs b/Src/Asp.NetCore2/SqlSeverTest/1_CodeFirst.cs
new file mode 100644
index 000000000..14f37a858
--- /dev/null
+++ b/Src/Asp.NetCore2/SqlSeverTest/1_CodeFirst.cs
@@ -0,0 +1,134 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OrmTest
+{
+ ///
+ /// Class for demonstrating CodeFirst initialization operations
+ /// 用于展示 CodeFirst 初始化操作的类
+ ///
+ public class _1_CodeFirst
+ {
+
+ public static void Init()
+ {
+ // Get a new database instance
+ // 获取新的数据库实例
+ var db = DbHelper.GetNewDb();
+
+ // Create the database if it doesn't exist
+ // 如果数据库不存在,则创建数据库
+ db.DbMaintenance.CreateDatabase();
+
+ // Initialize tables based on UserInfo001 entity class
+ // 根据 UserInfo001 实体类初始化表
+ db.CodeFirst.InitTables();
+
+ //Table structure and class are different
+ //表结构和类存在差异 初始化表
+ db.CodeFirst.InitTables();
+
+ //Insert
+ //插入
+ var id=db.Insertable(new UserInfo001()
+ {
+ Context = "Context",
+ Email="dfafa@qq.com",
+ Price=Convert.ToDecimal(1.1),
+ UserName="admin",
+ RegistrationDate=DateTime.Now,
+
+ }).ExecuteReturnIdentity();
+
+ //Query
+ //查询
+ var userInfo=db.Queryable().InSingle(id);
+
+ //Update
+ //更新
+ db.Updateable(userInfo).ExecuteCommand();
+
+ //Delete
+ //删除
+ db.Deleteable(userInfo).ExecuteCommand();
+ }
+
+ ///
+ /// User information entity class
+ /// 用户信息实体类
+ ///
+ public class UserInfo001
+ {
+ ///
+ /// User ID (Primary Key)
+ /// 用户ID(主键)
+ ///
+ [SugarColumn(IsIdentity = true, IsPrimaryKey = true)]
+ public int UserId { get; set; }
+
+ ///
+ /// User name
+ /// 用户名
+ ///
+ [SugarColumn(Length = 50, IsNullable = false)]
+ public string UserName { get; set; }
+
+ ///
+ /// User email
+ /// 用户邮箱
+ ///
+ [SugarColumn(IsNullable = true)]
+ public string Email { get; set; }
+
+
+ ///
+ /// Product price
+ /// 产品价格
+ ///
+ public decimal Price { get; set; }
+
+ ///
+ /// User context
+ /// 用户内容
+ ///
+ [SugarColumn(ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
+ public string Context { get; set; }
+
+ ///
+ /// User registration date
+ /// 用户注册日期
+ ///
+ [SugarColumn(IsNullable = true)]
+ public DateTime? RegistrationDate { get; set; }
+ }
+
+
+ ///
+ /// User information entity class
+ /// 用户信息实体类
+ ///
+ [SugarTable("UserInfoAAA01")]
+ public class UserInfo002
+ {
+ ///
+ /// User ID (Primary Key)
+ /// 用户ID(主键)
+ ///
+ [SugarColumn(IsIdentity = true,ColumnName ="Id", IsPrimaryKey = true)]
+ public int UserId { get; set; }
+
+ ///
+ /// User name
+ /// 用户名
+ ///
+ [SugarColumn(Length = 50,ColumnName ="Name", IsNullable = false)]
+ public string UserName { get; set; }
+
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/Src/Asp.NetCore2/SqlSeverTest/2_DbFirst.cs b/Src/Asp.NetCore2/SqlSeverTest/2_DbFirst.cs
new file mode 100644
index 000000000..a4ba49fc0
--- /dev/null
+++ b/Src/Asp.NetCore2/SqlSeverTest/2_DbFirst.cs
@@ -0,0 +1,136 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OrmTest
+{
+ internal class _2_DbFirst
+ {
+ ///
+ /// 初始化方法,包含各种DbFirst操作的演示
+ /// Initialization method containing demonstrations of various DbFirst operations
+ ///
+ public static void Init()
+ {
+ var db = DbHelper.GetNewDb();
+
+ // 生成干净的实体类文件
+ // Generate clean entity class files
+ Demo1(db);
+
+ // 生成带有SqlSugar特性的实体类文件
+ // Generate entity class files with SqlSugar attributes
+ Demo2(db);
+
+ // 支持字符串类型的Nullable特性
+ // Support String Nullable attribute
+ Demo3(db);
+
+ // 格式化类名、属性名和文件名
+ // Format class names, property names, and file names
+ Demo4(db);
+
+ // 条件过滤生成实体类文件
+ // Generate entity class files with condition filtering
+ Demo5(db);
+
+ // 修改模版生成实体类文件(禁用IsCreateAttribute,避免冲突)
+ // Generate entity class files with modified templates (disable IsCreateAttribute to avoid conflicts)
+ Demo6(db);
+ }
+
+ ///
+ /// 生成干净的实体类文件
+ /// Generate clean entity class files
+ ///
+ private static void Demo1(SqlSugarClient db)
+ {
+ db.DbFirst.CreateClassFile("c:\\Demo\\1", "Models");
+ }
+
+ ///
+ /// 生成带有SqlSugar特性的实体类文件
+ /// Generate entity class files with SqlSugar attributes
+ ///
+ private static void Demo2(SqlSugarClient db)
+ {
+ db.DbFirst.IsCreateAttribute().CreateClassFile("c:\\Demo\\2", "Models");
+ }
+
+ ///
+ /// 支持字符串类型的Nullable特性
+ /// Support String Nullable attribute
+ ///
+ private static void Demo3(SqlSugarClient db)
+ {
+ db.DbFirst.IsCreateAttribute().StringNullable().CreateClassFile("c:\\Demo\\3", "Models");
+ }
+
+ ///
+ /// 格式化类名、属性名和文件名
+ /// Format class names, property names, and file names
+ ///
+ private static void Demo4(SqlSugarClient db)
+ {
+ db.DbFirst
+ .IsCreateAttribute()
+ .FormatFileName(it => "File_" + it)
+ .FormatClassName(it => "Class_" + it)
+ .FormatPropertyName(it => "Property_" + it)
+ .CreateClassFile("c:\\Demo\\4", "Models");
+ }
+
+ ///
+ /// 条件过滤生成实体类文件
+ /// Generate entity class files with condition filtering
+ ///
+ private static void Demo5(SqlSugarClient db)
+ {
+ db.DbFirst.IsCreateAttribute().Where(it => it.ToLower() == "userinfo001").CreateClassFile("c:\\Demo\\5", "Models");
+ }
+
+ ///
+ /// 修改模版生成实体类文件(禁用IsCreateAttribute,避免冲突)
+ /// Generate entity class files with modified templates (disable IsCreateAttribute to avoid conflicts)
+ ///
+ private static void Demo6(SqlSugarClient db)
+ {
+ db.DbFirst
+ // 类
+ .SettingClassTemplate(old => { return old;/* 修改old值替换 */ })
+ // 类构造函数
+ .SettingConstructorTemplate(old => { return old;/* 修改old值替换 */ })
+ .SettingNamespaceTemplate(old =>
+ {
+ return old + "\r\nusing SqlSugar;"; // 追加引用SqlSugar
+ })
+ // 属性备注
+ .SettingPropertyDescriptionTemplate(old => { return old;/* 修改old值替换 */})
+
+ // 属性:新重载 完全自定义用配置
+ .SettingPropertyTemplate((columns, temp, type) =>
+ {
+
+ var columnattribute = "\r\n [SugarColumn({0})]";
+ List attributes = new List();
+ if (columns.IsPrimarykey)
+ attributes.Add("IsPrimaryKey=true");
+ if (columns.IsIdentity)
+ attributes.Add("IsIdentity=true");
+ if (attributes.Count == 0)
+ {
+ columnattribute = "";
+ }
+ return temp.Replace("{PropertyType}", type)
+ .Replace("{PropertyName}", columns.DbColumnName)
+ .Replace("{SugarColumn}", string.Format(columnattribute, string.Join(",", attributes)));
+ })
+
+ .CreateClassFile("c:\\Demo\\6");
+ }
+ }
+}
+
\ No newline at end of file
diff --git a/Src/Asp.NetCore2/SqlSeverTest/3_EasyQuery.cs b/Src/Asp.NetCore2/SqlSeverTest/3_EasyQuery.cs
new file mode 100644
index 000000000..b4544bab0
--- /dev/null
+++ b/Src/Asp.NetCore2/SqlSeverTest/3_EasyQuery.cs
@@ -0,0 +1,191 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using SqlSugar;
+
+namespace OrmTest
+{
+ internal class _3_EasyQuery
+ {
+ ///
+ /// 初始化方法,包含各种查询操作的演示
+ /// Initialization method containing demonstrations of various query operations
+ ///
+ public static void Init()
+ {
+ // 创建表并插入一条记录
+ // Create table and insert a record
+ CreateTable();
+
+ // 查询所有学生信息
+ // Query all student records
+ GetAllStudents();
+
+ // 查询学生总数
+ // Get the total count of students
+ GetStudentCount();
+
+ // 按条件查询学生信息
+ // Query student records based on conditions
+ GetStudentsByCondition();
+
+ // 模糊查询学生信息(名字包含"jack"的学生)
+ // Fuzzy search for student records (students with names containing "jack")
+ GetStudentsByName("jack");
+
+ // 根据学生ID查询单个学生
+ // Query a single student by student ID
+ GetStudentById(1);
+
+ // 获取Student03表中的最大Id
+ // Get the maximum ID from the Student03 table
+ GetMaxStudentId();
+
+ // 简单排序(按照Id降序排序)
+ // Simple sorting (sorting by Id in descending order)
+ GetStudentsOrderedByIdDesc();
+
+ // 查询学生姓名列表
+ // Query the list of student names
+ GetStudentNames();
+ }
+
+ ///
+ /// 创建表并插入一条记录
+ /// Create table and insert a record
+ ///
+ private static void CreateTable()
+ {
+ SqlSugarClient db = DbHelper.GetNewDb();
+ db.CodeFirst.InitTables();
+ db.Insertable(new Student03() { Name = "name" + SnowFlakeSingle.Instance.NextId() })
+ .ExecuteCommand();
+ }
+
+ ///
+ /// 查询所有学生信息
+ /// Query all student records
+ ///
+ private static void GetAllStudents()
+ {
+ SqlSugarClient db = DbHelper.GetNewDb();
+ var students = db.Queryable().ToList();
+ // 处理查询结果
+ // Process the query results
+ }
+
+ ///
+ /// 查询学生总数
+ /// Get the total count of students
+ ///
+ private static void GetStudentCount()
+ {
+ SqlSugarClient db = DbHelper.GetNewDb();
+ var count = db.Queryable().Count();
+ // 处理查询结果
+ // Process the query results
+ }
+
+ ///
+ /// 按条件查询学生信息
+ /// Query student records based on conditions
+ ///
+ private static void GetStudentsByCondition()
+ {
+ SqlSugarClient db = DbHelper.GetNewDb();
+
+ // 查询name字段不为null的学生
+ // Query students where the 'name' field is not null
+ var studentsWithNameNotNull = db.Queryable().Where(it => it.Name != null).ToList();
+
+ // 查询name字段为null的学生
+ // Query students where the 'name' field is null
+ var studentsWithNameNull = db.Queryable().Where(it => it.Name == null).ToList();
+
+ // 查询name字段不为空的学生
+ // Query students where the 'name' field is not empty
+ var studentsWithNameNotEmpty = db.Queryable().Where(it => it.Name != "").ToList();
+
+ // 多条件查询
+ // Query students with multiple conditions
+ var studentsWithMultipleConditions = db.Queryable().Where(it => it.Id > 10 && it.Name == "a").ToList();
+
+ // 动态OR查询
+ // Dynamic OR query
+ var exp = Expressionable.Create();
+ exp.OrIF(true, it => it.Id == 1);
+ exp.Or(it => it.Name.Contains("jack"));
+ var studentsWithDynamicOr = db.Queryable().Where(exp.ToExpression()).ToList();
+
+ }
+
+ ///
+ /// 模糊查询学生信息
+ /// Fuzzy search for student records
+ ///
+ private static void GetStudentsByName(string keyword)
+ {
+ SqlSugarClient db = DbHelper.GetNewDb();
+ var students = db.Queryable().Where(it => it.Name.Contains(keyword)).ToList();
+ // 处理查询结果
+ // Process the query results
+ }
+
+ ///
+ /// 根据学生ID查询单个学生
+ /// Query a single student by student ID
+ ///
+ private static void GetStudentById(int id)
+ {
+ SqlSugarClient db = DbHelper.GetNewDb();
+ var student = db.Queryable().Single(it => it.Id == id);
+ // 处理查询结果
+ // Process the query results
+ }
+
+ ///
+ /// 获取Student03表中的最大Id
+ /// Get the maximum ID from the Student03 table
+ ///
+ private static void GetMaxStudentId()
+ {
+ SqlSugarClient db = DbHelper.GetNewDb();
+ var maxId = db.Queryable().Max(it => it.Id);
+ // 处理查询结果
+ // Process the query results
+ }
+
+ ///
+ /// 简单排序(按照Id降序排序)
+ /// Simple sorting (sorting by Id in descending order)
+ ///
+ private static void GetStudentsOrderedByIdDesc()
+ {
+ SqlSugarClient db = DbHelper.GetNewDb();
+ var students = db.Queryable().OrderBy(sc => sc.Id, OrderByType.Desc).ToList();
+ // 处理查询结果
+ // Process the query results
+ }
+
+ ///
+ /// 查询学生姓名列表
+ /// Query the list of student names
+ ///
+ private static void GetStudentNames()
+ {
+ SqlSugarClient db = DbHelper.GetNewDb();
+ var studentNames = db.Queryable().Select(it => it.Name).ToList();
+ // 处理查询结果
+ // Process the query results
+ }
+
+ public class Student03
+ {
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+ public string Name { get; set; }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Src/Asp.NetCore2/SqlSeverTest/4_JoinQuery.cs b/Src/Asp.NetCore2/SqlSeverTest/4_JoinQuery.cs
new file mode 100644
index 000000000..979152df8
--- /dev/null
+++ b/Src/Asp.NetCore2/SqlSeverTest/4_JoinQuery.cs
@@ -0,0 +1,171 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using static OrmTest._4_JoinQuery;
+
+namespace OrmTest
+{
+ internal class _4_JoinQuery
+ {
+ public static void Init()
+ {
+ InitializeDatabase();
+ SyntaxSugar1();
+ SyntaxSugar2();
+ SyntaxSugar3();
+ }
+ ///
+ /// 使用语法糖1进行联表查询。
+ /// Performs a Join query using Syntax Sugar 1.
+ ///
+ /// 查询结果列表。The list of query results.
+ public static List SyntaxSugar1()
+ {
+ var db = DbHelper.GetNewDb();
+ var query = db.Queryable()
+ .LeftJoin((o, cus) => o.CustomId == cus.Id)
+ .LeftJoin((o, cus, oritem) => o.Id == oritem.OrderId)
+ .Where(o => o.Id == 1)
+ .Select((o, cus, oritem) => new ViewOrder2 { Id = o.Id,Name=o.Name, CustomName = cus.Name })
+ .ToList();
+
+ return query;
+ }
+
+ ///
+ /// 使用语法糖2进行联表查询。
+ /// Performs a Join query using Syntax Sugar 2.
+ ///
+ /// 查询结果列表。The list of query results.
+ public static List SyntaxSugar2()
+ {
+ var db = DbHelper.GetNewDb();
+ var rightQueryable = db.Queryable()
+ .LeftJoin((o, i) => o.Id == i.Id)
+ .Select(o => o);
+
+ var list = db.Queryable()
+ .LeftJoin(rightQueryable, (c, j) => c.CustomId == j.Id)
+ .Select(c => c)
+ .ToList();
+ return list;
+ }
+
+ ///
+ /// 使用语法糖3进行联表查询。
+ /// Performs a Join query using Syntax Sugar 3.
+ ///
+ /// 查询结果列表。The list of query results.
+ public static List SyntaxSugar3()
+ {
+ var db = DbHelper.GetNewDb();
+ var list = db.Queryable((o, i, c) => o.Id == i.OrderId && c.Id == o.CustomId)
+ .Select((o, i, c) => new ViewOrder2 { Id = o.Id, Name = o.Name, CustomName = c.Name })
+ .ToList();
+
+ return list;
+ }
+
+
+ static void InitializeDatabase()
+ {
+ // Initialize order data
+ // 初始化订单数据
+ var orders = new List
+ {
+ new Order { Id = 1, Name = "Order 1", CustomId = 1 },
+ new Order { Id = 2, Name = "Order 2", CustomId = 2 },
+ new Order { Id = 3, Name = "Order 3", CustomId = 1 },
+ };
+
+ // Initialize order details data
+ // 初始化订单详情数据
+ var orderDetails = new List
+ {
+ new OrderDetail { Id = 1, OrderId = 1 },
+ new OrderDetail { Id = 2, OrderId = 2 },
+ new OrderDetail { Id = 3, OrderId = 3 },
+ };
+
+ // Initialize customer data
+ // 初始化客户数据
+ var customers = new List
+ {
+ new Custom { Id = 1, Name = "Customer 1" },
+ new Custom { Id = 2, Name = "Customer 2" },
+ new Custom { Id = 3, Name = "Customer 3" },
+ };
+
+ // Get database connection
+ // 获取数据库连接
+ var db = DbHelper.GetNewDb();
+
+ // Initialize database tables and truncate data
+ // 初始化数据库表并清空数据
+ db.CodeFirst.InitTables();
+ db.DbMaintenance.TruncateTable();
+
+ // Insert data into tables
+ // 向表中插入数据
+ db.Insertable(orders).ExecuteCommand();
+ db.Insertable(orderDetails).ExecuteCommand();
+ db.Insertable(customers).ExecuteCommand();
+ }
+
+ ///
+ /// 订单实体类。
+ /// Order entity class.
+ ///
+ [SqlSugar.SugarTable("Order04")]
+ public class Order
+ {
+ [SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+ public string Name { get; set; }
+ public int CustomId { get; set; }
+ // 其他订单相关属性...
+ }
+
+ ///
+ /// 订单详情实体类。
+ /// Order detail entity class.
+ ///
+ [SqlSugar.SugarTable("OrderDetail04")]
+ public class OrderDetail
+ {
+ [SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+ public int OrderId { get; set; }
+ // 其他订单详情相关属性...
+ }
+
+ ///
+ /// 客户实体类。
+ /// Customer entity class.
+ ///
+ [SqlSugar.SugarTable("Custom04")]
+ public class Custom
+ {
+ [SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+ public string Name { get; set; }
+ // 其他客户相关属性...
+ }
+
+
+
+ ///
+ /// 类1实体类。
+ /// Class1 entity class.
+ ///
+ public class ViewOrder2
+ {
+ public int Id { get; set; }
+ public string Name { get; set; }
+ public string CustomName { get; set; }
+ // 其他类1相关属性...
+ }
+ }
+}
diff --git a/Src/Asp.NetCore2/SqlSeverTest/5_PageQuery.cs b/Src/Asp.NetCore2/SqlSeverTest/5_PageQuery.cs
new file mode 100644
index 000000000..fba71c6f7
--- /dev/null
+++ b/Src/Asp.NetCore2/SqlSeverTest/5_PageQuery.cs
@@ -0,0 +1,112 @@
+using OrmTest;
+using SqlSugar;
+using System;
+using System.Linq;
+using System.Threading.Tasks;
+
+public class _5_PageQuery
+{
+ public static void Init()
+ {
+
+ int pagenumber = 1;
+ int pageSize = 20;
+ int totalCount = 0;
+
+ SqlSugarClient db = DbHelper.GetNewDb();
+
+ //建表
+ //Create table
+ AddTestData(db);
+
+ // 同步分页方法
+ // Synchronous pagination method
+ SyncPagination(db, pagenumber, pageSize, ref totalCount);
+
+ // 异步分页方法
+ // Asynchronous pagination method
+ AsyncPagination(db, pagenumber, pageSize) .GetAwaiter() .GetResult();
+ }
+
+ public static void AddTestData(SqlSugarClient db)
+ {
+
+ //建表
+ //Create table
+ db.CodeFirst.InitTables();
+
+ // 添加学校数据
+ // Add school data
+ var school1 = new School { Name = "School A" };
+ var school2 = new School { Name = "School B" };
+ db.Insertable(school1).ExecuteCommand();
+ db.Insertable(school2).ExecuteCommand();
+
+ // 添加学生数据
+ // Add student data
+ var student1 = new Student { SchoolId = school1.Id, Name = "John", CreateTime = DateTime.Now };
+ var student2 = new Student { SchoolId = school1.Id, Name = "Alice", CreateTime = DateTime.Now };
+
+ db.Insertable(student1).ExecuteCommand();
+ db.Insertable(student2).ExecuteCommand();
+
+ Console.WriteLine("Test data added successfully.");
+ }
+
+ ///
+ /// 同步分页示例
+ /// Synchronous pagination example
+ ///
+ /// 数据库连接对象 Database connection object
+ /// 页码 Page number
+ /// 每页大小 Page size
+ /// 总记录数 Total record count
+ public static void SyncPagination(SqlSugarClient db, int pagenumber, int pageSize, ref int totalCount)
+ {
+ // 同步单表分页
+ // Synchronous pagination for a single table
+ var page = db.Queryable().ToPageList(pagenumber, pageSize, ref totalCount);
+
+ // 同步多表分页
+ // Synchronous pagination for multiple tables
+ var list = db.Queryable().LeftJoin((st, sc) => st.SchoolId == sc.Id)
+ .Select((st, sc) => new { Id = st.Id, Name = st.Name, SchoolName = sc.Name })
+ .ToPageList(pagenumber, pageSize, ref totalCount);
+
+ // offset分页
+ // offset pagination
+ var sqlServerPage = db.Queryable().ToOffsetPage(pagenumber, pageSize);
+
+ }
+
+ ///
+ /// 异步分页示例
+ /// Asynchronous pagination example
+ ///
+ /// 数据库连接对象 Database connection object
+ /// 页码 Page number
+ /// 每页大小 Page size
+ public static async Task AsyncPagination(SqlSugarClient db, int pagenumber, int pageSize)
+ {
+ RefAsync total = 0;
+ // 异步分页
+ // Asynchronous pagination
+ var orders = await db.Queryable().ToPageListAsync(pagenumber, pageSize, total);
+ }
+ [SugarTable("Student05")]
+ public class Student
+ {
+ [SugarColumn(IsIdentity =true,IsPrimaryKey =true)]
+ public int Id { get; set; }
+ public int SchoolId { get; set; }
+ public string Name { get; set; }
+ public DateTime CreateTime { get; set; }
+ }
+ [SugarTable("School05")]
+ public class School
+ {
+ [SugarColumn(IsIdentity = true, IsPrimaryKey = true)]
+ public int Id { get; set; }
+ public string Name { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Src/Asp.NetCore2/SqlSeverTest/6_NavigationPropertyQuery.cs b/Src/Asp.NetCore2/SqlSeverTest/6_NavigationPropertyQuery.cs
new file mode 100644
index 000000000..6dec5075e
--- /dev/null
+++ b/Src/Asp.NetCore2/SqlSeverTest/6_NavigationPropertyQuery.cs
@@ -0,0 +1,268 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OrmTest
+{
+ internal class _6_NavQuery
+ {
+ ///
+ /// Initialize navigation query examples.
+ /// 初始化导航查询示例。
+ ///
+ public static void Init()
+ {
+ var db = DbHelper.GetNewDb();
+
+ // Initialize database table structures.
+ // 初始化数据库表结构。
+ InitializeDatabase(db);
+
+ // One-to-One navigation query test.
+ // 一对一导航查询测试。
+ OneToOneTest(db);
+
+ // One-to-Many navigation query test.
+ // 一对多导航查询测试。
+ OneToManyTest(db);
+
+ // Many-to-Many navigation query test.
+ // 多对多导航查询测试。
+ ManyToManyTest(db);
+ }
+
+ ///
+ /// Test many-to-many navigation queries.
+ /// 测试多对多导航查询。
+ ///
+ private static void ManyToManyTest(SqlSugarClient db)
+ {
+ // Many-to-many navigation query, query table A and include its BList.
+ // 多对多导航查询,查询A表,并包含其BList。
+ var list4 = db.Queryable().Includes(it => it.BList).ToList();
+
+ // Many-to-many navigation query with filtered BList while preserving the original A records, regardless of the filter on BList.
+ // 使用过滤条件的多对多导航查询,在过滤BList的同时保持A表的原始记录,不受BList过滤条件的影响。
+ var list5 = db.Queryable().Includes(it => it.BList.Where(s => s.BId == 1).ToList()).ToList();
+
+ // Many-to-many navigation query with filtered A records while preserving the original BList, regardless of the filter on A records.
+ // 使用过滤条件的多对多导航查询,在过滤A表的同时保持BList的原始记录,不受A表过滤条件的影响。
+ var list6 = db.Queryable().Includes(it => it.BList)
+ .Where(it =>it.BList.Any(s => s.BId == 1)).ToList();
+
+ // Many-to-many navigation query with filtered BList and filtered A records, but not preserving the original A and B records.
+ // 使用过滤条件的多对多导航查询,在A表中过滤BList并过滤A记录,但不保持A表和B表的原始记录。
+ var list7 = db.Queryable()
+ .Includes(it => it.BList.Where(s => s.BId == 1).ToList())
+ .Where(it => it.BList.Any(s => s.BId == 1)).ToList();
+ }
+
+ ///
+ /// Test one-to-many navigation queries.
+ /// 测试一对多导航查询。
+ ///
+ private static void OneToManyTest(SqlSugarClient db)
+ {
+ // One-to-many navigation query, query table Student and include its Books.
+ // 一对多导航查询,查询Student表,并包含其Books。
+ var list4 = db.Queryable().Includes(it => it.Books).ToList();
+
+ // One-to-many navigation query with filtered Books while preserving the original Student records, regardless of the filter on Books.
+ // 使用过滤条件的一对多导航查询,在过滤Books的同时保持Student表的原始记录,不受Books过滤条件的影响。
+ var list5 = db.Queryable().Includes(it => it.Books.Where(s => s.BookId == 1).ToList()).ToList();
+
+ // One-to-many navigation query with filtered Student records while preserving the original Books, regardless of the filter on Student records.
+ // 使用过滤条件的一对多导航查询,在过滤Student表的同时保持Books的原始记录,不受Student表过滤条件的影响。
+ var list6 = db.Queryable().Includes(it => it.Books)
+ .Where(it => it.Books.Any(s => s.BookId == 1)).ToList();
+
+ // One-to-many navigation query with filtered Books and filtered Student records, but not preserving the original Student and Books records.
+ // 使用过滤条件的一对多导航查询,在Student表中过滤Books并过滤Student记录,但不保持Student表和Books表的原始记录。
+ var list7 = db.Queryable()
+ .Includes(it => it.Books.Where(s => s.BookId == 1).ToList())
+ .Where(it => it.Books.Any(s => s.BookId == 1)).ToList();
+ }
+
+ ///
+ /// Test one-to-one navigation queries.
+ /// 测试一对一导航查询。
+ ///
+ private static void OneToOneTest(SqlSugarClient db)
+ {
+ // One-to-one navigation query with condition, query table Student and include its associated School with specific SchoolId.
+ // 带条件的一对一导航查询,查询Student表,并包含其关联的School表,条件为特定的SchoolId。
+ var list = db.Queryable()
+ .Where(it => it.School.SchoolId == 1)
+ .ToList();
+
+ // Inner join navigation query, query table Student and include its associated School.
+ // 内连接导航查询,查询Student表,并包含其关联的School表。
+ var list2 = db.Queryable().IncludeInnerJoin(it => it.School)
+ .ToList();
+
+ // Includes navigation query, query table Student and include its associated School.
+ // 包含导航查询,查询Student表,并包含其关联的School表。
+ var list3 = db.Queryable().Includes(it => it.School).ToList();
+ }
+
+ ///
+ /// Initialize database tables and insert sample data for navigation query examples.
+ /// 初始化导航查询示例的数据库表并插入示例数据。
+ ///
+ private static void InitializeDatabase(SqlSugarClient db)
+ {
+ // Initialize and truncate tables for Student, School, and Book entities.
+ // 初始化并清空Student、School和Book表。
+ db.CodeFirst.InitTables();
+ db.DbMaintenance.TruncateTable();
+
+ // Sample data for Student, School, and Book entities.
+ // Student、School和Book表的示例数据。
+ var students = new List
+ {
+ new Student
+ {
+ Name = "Student 1",
+ SexCode = "M",
+ School = new School { SchoolName = "School 1" },
+ Books = new List
+ {
+ new Book { Name = "Book 1" },
+ new Book { Name = "Book 2" }
+ }
+ },
+ new Student
+ {
+ Name = "Student 2",
+ SexCode = "F",
+ School = new School { SchoolName = "School 2" },
+ Books = new List
+ {
+ new Book { Name = "Book 3" }
+ }
+ }
+ };
+
+ // Insert sample data for Student, School, and Book entities using navigation properties.
+ // 使用导航属性插入Student、School和Book表的示例数据。
+ db.InsertNav(students)
+ .Include(it => it.School)
+ .Include(it => it.Books).ExecuteCommand();
+
+ // Initialize and truncate tables for A, B, and ABMapping entities.
+ // 初始化并清空A、B和ABMapping表。
+ db.CodeFirst.InitTables();
+ db.DbMaintenance.TruncateTable();
+
+ // Sample data for A, B, and ABMapping entities.
+ // A、B和ABMapping表的示例数据。
+ List a1 = new List { new A() { Name = "A1" }, new A() { Name = "A2" } };
+ B b1 = new B { Name = "B1" };
+ B b2 = new B { Name = "B2" };
+ a1[0].BList = new List { b1, b2 };
+
+ // Insert sample data for A, B, and ABMapping entities using navigation properties.
+ // 使用导航属性插入A、B和ABMapping表的示例数据。
+ db.InsertNav(a1).Include(x => x.BList).ExecuteCommand();
+ }
+
+ ///
+ /// Student entity representing the Student table in the database.
+ /// 表示数据库中Student表的Student实体类。
+ ///
+ [SugarTable("Student06")]
+ public class Student
+ {
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int StudentId { get; set; }
+ public string Name { get; set; }
+ public string SexCode { get; set; }
+ public int SchoolId { get; set; }
+
+ // One-to-One navigation property to School entity.
+ // 与School实体的一对一导航属性。
+ [Navigate(NavigateType.OneToOne, nameof(SchoolId))]
+ public School School { get; set; }
+
+ // One-to-Many navigation property to Book entities.
+ // 与Book实体的一对多导航属性。
+ [Navigate(NavigateType.OneToMany, nameof(Book.StudentId))]
+ public List Books { get; set; }
+ }
+
+ ///
+ /// School entity representing the School table in the database.
+ /// 表示数据库中School表的School实体类。
+ ///
+ [SugarTable("School06")]
+ public class School
+ {
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int SchoolId { get; set; }
+ public string SchoolName { get; set; }
+ }
+
+ ///
+ /// Book entity representing the Book table in the database.
+ /// 表示数据库中Book表的Book实体类。
+ ///
+ [SugarTable("Book06")]
+ public class Book
+ {
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int BookId { get; set; }
+ public string Name { get; set; }
+ public int StudentId { get; set; }
+ }
+
+ ///
+ /// A entity representing the A table in the database for many-to-many relationship.
+ /// 表示多对多关系中数据库中A表的A实体类。
+ ///
+ [SugarTable("A06")]
+ public class A
+ {
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int AId { get; set; }
+ public string Name { get; set; }
+
+ // Many-to-Many navigation property to B entities using ABMapping table.
+ // 与B实体的多对多导航属性,使用ABMapping表。
+ [Navigate(typeof(ABMapping), nameof(ABMapping.AId), nameof(ABMapping.BId))]
+ public List BList { get; set; }
+ }
+
+ ///
+ /// B entity representing the B table in the database for many-to-many relationship.
+ /// 表示多对多关系中数据库中B表的B实体类。
+ ///
+ [SugarTable("B06")]
+ public class B
+ {
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int BId { get; set; }
+ public string Name { get; set; }
+
+ // Many-to-Many navigation property to A entities using ABMapping table.
+ // 与A实体的多对多导航属性,使用ABMapping表。
+ [Navigate(typeof(ABMapping), nameof(ABMapping.BId), nameof(ABMapping.AId))]
+ public List AList { get; set; }
+ }
+
+ ///
+ /// ABMapping entity representing the intermediate table for many-to-many relationship between A and B entities.
+ /// 表示A和B实体之间多对多关系的中间表的ABMapping实体类。
+ ///
+ [SugarTable("ABMapping06")]
+ public class ABMapping
+ {
+ [SugarColumn(IsPrimaryKey = true)]
+ public int AId { get; set; }
+ [SugarColumn(IsPrimaryKey = true)]
+ public int BId { get; set; }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Src/Asp.NetCore2/SqlSeverTest/7_GroupQuery.cs b/Src/Asp.NetCore2/SqlSeverTest/7_GroupQuery.cs
new file mode 100644
index 000000000..6eabe8d54
--- /dev/null
+++ b/Src/Asp.NetCore2/SqlSeverTest/7_GroupQuery.cs
@@ -0,0 +1,74 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OrmTest
+{
+ internal class _7_GroupQuery
+ {
+ public static void Init()
+ {
+ var db = DbHelper.GetNewDb();
+ List students = new List
+ {
+ new Student { Id = 1, Name = "Alice", Age = 20 },
+ new Student { Id = 2, Name = "Bob", Age = 22 },
+ new Student { Id = 3, Name = "Alice", Age = 21 },
+ new Student { Id = 4, Name = "Charlie", Age = 19 },
+ new Student { Id = 5, Name = "Bob", Age = 20 }
+ };
+
+ // 初始化数据库表结构,如果表不存在则创建 (Initialize database table structure; create if not exists)
+ db.CodeFirst.InitTables();
+
+ // 清空指定表中的所有数据 (Truncate all data in the specified table)
+ db.DbMaintenance.TruncateTable();
+
+ //插入记录(Insert datas)
+ db.Insertable(students).ExecuteCommand();
+
+ // 分组查询示例 (Grouping Query Example)
+ var groupedStudents = db.Queryable()
+ .GroupBy(s => s.Name)
+ .Select(g => new
+ {
+ Name = g.Name, // 学生姓名 (Student Name)
+ Count = SqlFunc.AggregateCount(g.Id), // 学生数量 (Count of Students)
+ AverageAge = SqlFunc.AggregateAvg(g.Age), // 平均年龄 (Average Age)
+ MaxAge = SqlFunc.AggregateMax(g.Age), // 最大年龄 (Maximum Age)
+ MinAge = SqlFunc.AggregateMin(g.Age) // 最小年龄 (Minimum Age)
+ })
+ .ToList();
+
+
+ // 去重查询示例 (Distinct Query Example)
+ var distinctNames = students.Select(s => s.Name).Distinct().ToList();
+
+
+ // 分组取第一条记录示例 (Group First Record Example)
+ var groupFirstRecord = db.Queryable()
+ .Select(g => new
+ {
+ index = SqlFunc.RowNumber(SqlFunc.Desc(g.Id), g.Name),
+ Id = g.Id,
+ Name = g.Name,
+ Age =g.Age
+ })
+ .MergeTable()
+ .Where(it => it.index == 1)
+ .ToList();
+ }
+
+ [SqlSugar.SugarTable("Student07")]
+ public class Student
+ {
+ [SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; } // 学生ID (Student ID)
+ public string Name { get; set; } // 学生姓名 (Student Name)
+ public int Age { get; set; } // 学生年龄 (Student Age)
+ }
+ }
+}
diff --git a/Src/Asp.NetCore2/SqlSeverTest/8_Insert.cs b/Src/Asp.NetCore2/SqlSeverTest/8_Insert.cs
new file mode 100644
index 000000000..591a435f9
--- /dev/null
+++ b/Src/Asp.NetCore2/SqlSeverTest/8_Insert.cs
@@ -0,0 +1,66 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Data.Common;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OrmTest
+{
+ internal class _8_Insert
+ {
+ public static void Init()
+ {
+ var db = DbHelper.GetNewDb();
+
+ // 初始化实体表格(Initialize entity tables)
+ db.CodeFirst.InitTables();
+
+ // Use Case 1: 返回插入行数(Return the number of inserted rows)
+ var rowCount = db.Insertable(new StudentWithIdentity() { Name = "name" }).ExecuteCommand();
+
+ // Use Case 2: 插入数据并返回自增列(Insert data and return the auto-incremented column)
+ var identity = db.Insertable(new StudentWithIdentity() { Name = "name2" }).ExecuteReturnIdentity();
+
+ // Use Case 3: 返回雪花ID(Return the snowflake ID)
+ var snowflakeId = db.Insertable(new StudentWithSnowflake() { Name = "name" }).ExecuteReturnSnowflakeId();
+
+ // Use Case 4: 强制设置表名别名(Forcefully set table name alias)
+ db.Insertable(new StudentWithIdentity() { Name = "name2" }).AS("StudentWithIdentity").ExecuteCommand();
+
+ // Use Case 5: 批量插入实体(非参数化插入)(Batch insert entities (non-parameterized))
+ var list = db.Queryable().Take(2).ToList();
+ db.Insertable(list).ExecuteCommand();
+ db.Insertable(list).PageSize(1000).ExecuteCommand();
+
+ // Use Case 6: 参数化内部分页插入(Parameterized internal pagination insert)
+ db.Insertable(list).UseParameter().ExecuteCommand();
+
+ // Use Case 7: 大数据写入(示例代码,请根据实际情况调整)(Bulk data insertion - Example code, adjust based on actual scenario)
+ var listLong = new List() {
+ new StudentWithSnowflake() { Name = "name",Id=SnowFlakeSingle.Instance.NextId() },
+ new StudentWithSnowflake() { Name = "name",Id=SnowFlakeSingle.Instance.NextId()}
+ };
+ db.Fastest().BulkCopy(listLong);
+ }
+
+ // 实体类:带自增主键(Entity class: With auto-increment primary key)
+ [SugarTable("StudentWithIdentity08")]
+ public class StudentWithIdentity
+ {
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+ public string Name { get; set; }
+ }
+
+ // 实体类:带雪花主键(Entity class: With snowflake primary key)
+ [SugarTable("StudentWithSnowflake08")]
+ public class StudentWithSnowflake
+ {
+ [SugarColumn(IsPrimaryKey = true)]
+ public long Id { get; set; }
+ public string Name { get; set; }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Src/Asp.NetCore2/SqlSeverTest/9_Update.cs b/Src/Asp.NetCore2/SqlSeverTest/9_Update.cs
new file mode 100644
index 000000000..2fdcc0fdf
--- /dev/null
+++ b/Src/Asp.NetCore2/SqlSeverTest/9_Update.cs
@@ -0,0 +1,88 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using static OrmTest._8_Insert;
+
+namespace OrmTest
+{
+ internal class _9_Update
+ {
+ ///
+ /// 初始化更新方法(Initialize update methods)
+ ///
+ internal static void Init()
+ {
+ var db = DbHelper.GetNewDb();
+
+ // 初始化实体表格(Initialize entity tables)
+ db.CodeFirst.InitTables();
+
+ // 创建一个需要更新的实体对象(Create an entity object to be updated)
+ var updateObj = new StudentWithSnowflake() { Id = 1, Name = "order1" };
+
+ // 创建需要批量更新的实体对象列表(Create a list of entity objects to be updated in bulk)
+ var updateObjs = new List {
+ new StudentWithSnowflake() { Id = 11, Name = "order11", Date=DateTime.Now },
+ new StudentWithSnowflake() { Id = 12, Name = "order12", Date=DateTime.Now }
+ };
+
+ /***************************根据实体更新 (Update based on entity)***************************/
+
+ // 更新单个实体对象(Update a single entity object)
+ var result = db.Updateable(updateObj).ExecuteCommand();
+
+ // 批量更新实体对象列表(Update a list of entity objects in bulk)
+ var result20 = db.Updateable(updateObjs).ExecuteCommand();
+ var result21 = db.Updateable(updateObjs).PageSize(500).ExecuteCommand();
+
+ // 更新实体对象,忽略指定列(Update entity object, ignoring specific columns)
+ var result3 = db.Updateable(updateObj).IgnoreColumns(it => new { it.Remark }).ExecuteCommand();
+
+ // 更新实体对象的指定列(Update specific columns of the entity object)
+ var result4 = db.Updateable(updateObj).UpdateColumns(it => new { it.Name, Date = DateTime.Now }).ExecuteCommand();
+
+ // 如果没有主键,按照指定列更新实体对象(If there is no primary key, update entity object based on specified columns)
+ var result5 = db.Updateable(updateObj).WhereColumns(it => new { it.Id }).ExecuteCommand();
+
+ // 如果字段值为NULL,不进行更新(Do not update columns with NULL values)
+ var result6 = db.Updateable(updateObj).IgnoreNullColumns().ExecuteCommand();
+
+ // 忽略为NULL和默认值的列进行更新(Ignore columns with NULL and default values during update)
+ var result7 = db.Updateable(updateObj)
+ .IgnoreColumns(ignoreAllNullColumns: true, ignoreAllDefaultValue:true)
+ .ExecuteCommand();
+
+ // 使用最快的方式批量更新实体对象列表(Bulk update a list of entity objects using the fastest method)
+ var result8 = db.Fastest().BulkUpdate(updateObjs);
+
+ /***************************表达式更新 (Expression Update)***************************/
+
+ // 使用表达式更新实体对象的指定列(Update specific columns of the entity object using expressions)
+ var result71 = db.Updateable()
+ .SetColumns(it => new StudentWithSnowflake() { Name = "a", Date = DateTime.Now })
+ .Where(it => it.Id == 11)
+ .ExecuteCommand();
+
+ // 使用表达式更新实体对象的指定列(Update specific columns of the entity object using expressions)
+ var result81 = db.Updateable()
+ .SetColumns(it => it.Name == "Name" + "1")
+ .Where(it => it.Id == 1)
+ .ExecuteCommand();
+ }
+
+ // 实体类:带雪花主键(Entity class: With snowflake primary key)
+ [SugarTable("StudentWithSnowflake09")]
+ public class StudentWithSnowflake
+ {
+ [SugarColumn(IsPrimaryKey = true)]
+ public long Id { get; set; }
+ public string Name { get; set; }
+ public DateTime Date { get; set; }
+ [SugarColumn(IsNullable = true)]
+ public string Remark { get; set; }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Program.cs b/Src/Asp.NetCore2/SqlSeverTest/Program.cs
index 57092458c..64e9f1e7b 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Program.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/Program.cs
@@ -1,50 +1,64 @@
-
+using SqlSugar;
using System;
namespace OrmTest
{
- class Program
+
+ public class Program
+ {
+ static void Main(string[] args)
+ {
+ _1_CodeFirst.Init();
+ _2_DbFirst.Init();
+ _3_EasyQuery.Init();
+ _4_JoinQuery.Init();
+ _5_PageQuery.Init();
+ _6_NavQuery.Init();
+ _7_GroupQuery.Init();
+ _8_Insert.Init();
+ _9_Update.Init();
+ _a1_Delete.Init();
+ _a2_Sql.Init();
+ _a3_Merge.Init();
+ }
+ }
+
+ ///
+ /// Helper class for database operations
+ /// 数据库操作的辅助类
+ ///
+ public class DbHelper
{
///
- /// Set up config.cs file and start directly F5
- /// 设置Config.cs文件直接F5启动例子
+ /// Database connection string
+ /// 数据库连接字符串
///
- ///
- static void Main(string[] args)
+ public readonly static string Connection = "server=.;uid=sa;pwd=sasa;database=SqlSugar5Demo";
+
+ ///
+ /// Get a new SqlSugarClient instance with specific configurations
+ /// 获取具有特定配置的新 SqlSugarClient 实例
+ ///
+ /// SqlSugarClient instance
+ public static SqlSugarClient GetNewDb()
{
-
- //Demo
- Demo0_SqlSugarClient.Init();
- Demo1_Queryable.Init();
- Demo2_Updateable.Init();
- Demo3_Insertable.Init();
- Demo4_Deleteable.Init();
- DemoN_SplitTable.Init();
- DemoM_UnitOfWork.Init();
- DemoL_Snowflake.Init();
- Demo5_SqlQueryable.Init();
- Demo6_Queue.Init();
- Demo7_Ado.Init();
- Demo8_Saveable.Init();
- Demo9_EntityMain.Init();
- DemoA_DbMain.Init();
- DemoB_Aop.Init();
- DemoC_GobalFilter.Init();
- DemoD_DbFirst.Init();;
- DemoE_CodeFirst.Init();
- DemoF_Utilities.Init();
- DemoG_SimpleClient.Init();
- DemoJ_Report.Init();
- //Unit test
- //NewUnitTest.Init();
+ var db = new SqlSugarClient(new ConnectionConfig()
+ {
+ IsAutoCloseConnection = true,
+ DbType = DbType.SqlServer,
+ ConnectionString = Connection,
+ LanguageType=LanguageType.Default//Set language
- //Rest Data
- NewUnitTest.RestData();
-
- Console.WriteLine("all successfully.");
- Console.ReadKey();
+ },
+ it => {
+ // Logging SQL statements and parameters before execution
+ // 在执行前记录 SQL 语句和参数
+ it.Aop.OnLogExecuting = (sql, para) =>
+ {
+ Console.WriteLine(UtilMethods.GetNativeSql(sql, para));
+ };
+ });
+ return db;
}
-
-
}
-}
+}
\ No newline at end of file
diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest.csproj b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest.csproj
index 3083bf4d0..0fa347920 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest.csproj
+++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSeverTest.csproj
@@ -5,12 +5,6 @@
netcoreapp3.1
-
-
-
-
-
-
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Config.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Config.cs
similarity index 96%
rename from Src/Asp.NetCore2/SqlSeverTest/Config.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Config.cs
index 0ce7f19e8..0dad89257 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Config.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Config.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace OrmTest
+namespace SqlSeverTest.UserTestCases
{
///
/// Setting up the database name does not require you to create the database
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo0_SqlSugarClient.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo0_SqlSugarClient.cs
similarity index 99%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/Demo0_SqlSugarClient.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo0_SqlSugarClient.cs
index 6acb96535..e4c5370c5 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo0_SqlSugarClient.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo0_SqlSugarClient.cs
@@ -6,6 +6,7 @@ using System.Text;
using System.Threading.Tasks;
using SqlSugar;
using System.ComponentModel.DataAnnotations.Schema;
+using SqlSeverTest.UserTestCases;
namespace OrmTest
{
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo1_Queryable.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo1_Queryable.cs
similarity index 99%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/Demo1_Queryable.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo1_Queryable.cs
index 37a494349..500f7900e 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo1_Queryable.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo1_Queryable.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Data;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo2_Updateable.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo2_Updateable.cs
similarity index 98%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/Demo2_Updateable.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo2_Updateable.cs
index 004f88700..96a5ba351 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo2_Updateable.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo2_Updateable.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo3_Insertable.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo3_Insertable.cs
similarity index 98%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/Demo3_Insertable.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo3_Insertable.cs
index 58d613ef6..2ec32cf3d 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo3_Insertable.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo3_Insertable.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo4_Deleteable.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo4_Deleteable.cs
similarity index 97%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/Demo4_Deleteable.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo4_Deleteable.cs
index c72759942..b33f0667d 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo4_Deleteable.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo4_Deleteable.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo5_SqlQueryable.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo5_SqlQueryable.cs
similarity index 96%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/Demo5_SqlQueryable.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo5_SqlQueryable.cs
index 7569bc23c..98e316b16 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo5_SqlQueryable.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo5_SqlQueryable.cs
@@ -1,4 +1,5 @@
-
+
+using SqlSeverTest.UserTestCases;
using SqlSugar;
using System;
using System.Collections.Generic;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo6_Queue.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo6_Queue.cs
similarity index 97%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/Demo6_Queue.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo6_Queue.cs
index 666fd27ee..cf5808afb 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo6_Queue.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo6_Queue.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo7_Ado.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo7_Ado.cs
similarity index 97%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/Demo7_Ado.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo7_Ado.cs
index 9a7c48d12..6635302a7 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo7_Ado.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo7_Ado.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo8_Saveable.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo8_Saveable.cs
similarity index 95%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/Demo8_Saveable.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo8_Saveable.cs
index 1df3df3dd..1fd4f9551 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo8_Saveable.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo8_Saveable.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo9_EntityMain.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo9_EntityMain.cs
similarity index 96%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/Demo9_EntityMain.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo9_EntityMain.cs
index be795b098..5223c148a 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/Demo9_EntityMain.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Demo9_EntityMain.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoA_DbMain.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoA_DbMain.cs
similarity index 96%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/DemoA_DbMain.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoA_DbMain.cs
index 206cd6507..785658800 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoA_DbMain.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoA_DbMain.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoB_Aop.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoB_Aop.cs
similarity index 97%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/DemoB_Aop.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoB_Aop.cs
index 5d5cf7d37..02eda7b5d 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoB_Aop.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoB_Aop.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoD_DbFirst.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoD_DbFirst.cs
similarity index 98%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/DemoD_DbFirst.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoD_DbFirst.cs
index db57e0938..4fac210ae 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoD_DbFirst.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoD_DbFirst.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoE_CodeFirst.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoE_CodeFirst.cs
similarity index 97%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/DemoE_CodeFirst.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoE_CodeFirst.cs
index ff4018180..7d5090c6a 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoE_CodeFirst.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoE_CodeFirst.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using SqlSugar.DbConvert;
using System;
using System.Collections.Generic;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoF_Utilities.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoF_Utilities.cs
similarity index 96%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/DemoF_Utilities.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoF_Utilities.cs
index 7db24c350..e4eba3739 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoF_Utilities.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoF_Utilities.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoG_SimpleClient.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoG_SimpleClient.cs
similarity index 95%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/DemoG_SimpleClient.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoG_SimpleClient.cs
index 21b7208e8..92e092f6c 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoG_SimpleClient.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoG_SimpleClient.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoH_Tenant.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoH_Tenant.cs
similarity index 98%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/DemoH_Tenant.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoH_Tenant.cs
index 9dd7d6da2..57f2a17e7 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoH_Tenant.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoH_Tenant.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoJ_Report.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoJ_Report.cs
similarity index 98%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/DemoJ_Report.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoJ_Report.cs
index f8e98922e..8eaf727d7 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoJ_Report.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoJ_Report.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoL_Snowflake.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoL_Snowflake.cs
similarity index 95%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/DemoL_Snowflake.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoL_Snowflake.cs
index 7111083d9..3f7936ed3 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoL_Snowflake.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoL_Snowflake.cs
@@ -1,11 +1,12 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace OrmTest
+namespace OrmTest
{
public class DemoL_Snowflake
{
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoM_UnitOfWork.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoM_UnitOfWork.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/DemoM_UnitOfWork.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoM_UnitOfWork.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoN_SplitTable.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoN_SplitTable.cs
similarity index 98%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/DemoN_SplitTable.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoN_SplitTable.cs
index 9ad822c80..6c22832ce 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/DemoN_SplitTable.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/DemoN_SplitTable.cs
@@ -1,11 +1,12 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace OrmTest
+namespace OrmTest
{
public class DemoN_SplitTable
{
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Demo/Democ_GobalFilter.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Democ_GobalFilter.cs
similarity index 98%
rename from Src/Asp.NetCore2/SqlSeverTest/Demo/Democ_GobalFilter.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Democ_GobalFilter.cs
index 0e866cee0..42e099b8a 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/Demo/Democ_GobalFilter.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Demo/Democ_GobalFilter.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Models/AttributeTable.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/AttributeTable.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/Models/AttributeTable.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/AttributeTable.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Models/Custom.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/Custom.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/Models/Custom.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/Custom.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Models/EntityMapper.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/EntityMapper.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/Models/EntityMapper.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/EntityMapper.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Models/Mapper.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/Mapper.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/Models/Mapper.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/Mapper.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Models/Order.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/Order.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/Models/Order.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/Order.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Models/OrderItem.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/OrderItem.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/Models/OrderItem.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/OrderItem.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Models/SubInsertTest.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/SubInsertTest.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/Models/SubInsertTest.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/SubInsertTest.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Models/TestTree.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/TestTree.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/Models/TestTree.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/TestTree.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Models/Tree.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/Tree.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/Models/Tree.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/Tree.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/Models/ViewOrder.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/ViewOrder.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/Models/ViewOrder.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Models/ViewOrder.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Program.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Program.cs
new file mode 100644
index 000000000..47b57bcc9
--- /dev/null
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/Program.cs
@@ -0,0 +1,51 @@
+
+using System;
+using OrmTest;
+
+namespace SqlSeverTest.UserTestCases
+{
+ public class Cases
+ {
+ ///
+ /// Set up config.cs file and start directly F5
+ /// 设置Config.cs文件直接F5启动例子
+ ///
+ ///
+ public static void Init()
+ {
+
+ //Demo
+ Demo0_SqlSugarClient.Init();
+ Demo1_Queryable.Init();
+ Demo2_Updateable.Init();
+ Demo3_Insertable.Init();
+ Demo4_Deleteable.Init();
+ DemoN_SplitTable.Init();
+ DemoM_UnitOfWork.Init();
+ DemoL_Snowflake.Init();
+ Demo5_SqlQueryable.Init();
+ Demo6_Queue.Init();
+ Demo7_Ado.Init();
+ Demo8_Saveable.Init();
+ Demo9_EntityMain.Init();
+ DemoA_DbMain.Init();
+ DemoB_Aop.Init();
+ DemoC_GobalFilter.Init();
+ DemoD_DbFirst.Init(); ;
+ DemoE_CodeFirst.Init();
+ DemoF_Utilities.Init();
+ DemoG_SimpleClient.Init();
+ DemoJ_Report.Init();
+ //Unit test
+ //NewUnitTest.Init();
+
+ //Rest Data
+ NewUnitTest.RestData();
+
+ Console.WriteLine("all successfully.");
+ Console.ReadKey();
+ }
+
+
+ }
+}
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/AnimalTest.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/AnimalTest.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/AnimalTest.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/AnimalTest.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/CrossDatabase01.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/CrossDatabase01.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/CrossDatabase01.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/CrossDatabase01.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/EntityInfoTest.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/EntityInfoTest.cs
similarity index 98%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/EntityInfoTest.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/EntityInfoTest.cs
index a1f2e4c04..bdd4b6b4c 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/EntityInfoTest.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/EntityInfoTest.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Main.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Main.cs
similarity index 98%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Main.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Main.cs
index 75ff1ff51..ce2220756 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Main.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Main.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/OneToManyInString.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/OneToManyInString.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/OneToManyInString.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/OneToManyInString.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Test01.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Test01.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Test01.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Test01.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UAdo.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UAdo.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UAdo.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UAdo.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UBulkCopy.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UBulkCopy.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UBulkCopy.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UBulkCopy.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCodeFirst.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCodeFirst.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCodeFirst.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCodeFirst.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom01.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom01.cs
similarity index 97%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom01.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom01.cs
index dc40e4a92..7c3139a32 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom01.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom01.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom012.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom012.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom012.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom012.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom014.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom014.cs
similarity index 99%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom014.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom014.cs
index fad31b56a..cecd2dd49 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom014.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom014.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom015.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom015.cs
similarity index 98%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom015.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom015.cs
index 77d26e22a..4cf86ea56 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom015.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom015.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom019.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom019.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom019.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom019.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom02.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom02.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom02.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom02.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom03.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom03.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UCustom03.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UCustom03.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UEnum.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UEnum.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UEnum.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UEnum.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UFilter.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UFilter.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UFilter.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UFilter.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UInsert.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UInsert.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UInsert.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UInsert.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UJson.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UJson.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UJson.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UJson.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UJsonsdafa.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UJsonsdafa.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UJsonsdafa.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UJsonsdafa.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UNavDynamic111N.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UNavDynamic111N.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UNavDynamic111N.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UNavDynamic111N.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UOneManyMany.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UOneManyMany.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UOneManyMany.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UOneManyMany.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UOneManyMany2.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UOneManyMany2.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UOneManyMany2.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UOneManyMany2.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UOneManyMany3.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UOneManyMany3.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UOneManyMany3.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UOneManyMany3.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UOneManyMany4.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UOneManyMany4.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UOneManyMany4.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UOneManyMany4.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UOneManyMany5.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UOneManyMany5.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UOneManyMany5.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UOneManyMany5.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UOneManyMany6.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UOneManyMany6.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UOneManyMany6.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UOneManyMany6.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UOneManyMany7.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UOneManyMany7.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UOneManyMany7.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UOneManyMany7.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UQueryable.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UQueryable.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UQueryable.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UQueryable.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UQueryable2.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UQueryable2.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UQueryable2.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UQueryable2.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UQueryableAsync.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UQueryableAsync.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UQueryableAsync.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UQueryableAsync.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UQueue.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UQueue.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UQueue.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UQueue.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UThread.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UThread.cs
similarity index 99%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UThread.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UThread.cs
index c731672b3..313596d48 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UThread.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UThread.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UThread2.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UThread2.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UThread2.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UThread2.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UThread3.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UThread3.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UThread3.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UThread3.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UTran.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UTran.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UTran.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UTran.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UValidate.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UValidate.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UValidate.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UValidate.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UinitCustomConvert.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UinitCustomConvert.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UinitCustomConvert.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UinitCustomConvert.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UinitUpdateNavOneToOne.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UinitUpdateNavOneToOne.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UinitUpdateNavOneToOne.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UinitUpdateNavOneToOne.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitBool.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitBool.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitBool.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitBool.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitBulkMerge.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitBulkMerge.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitBulkMerge.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitBulkMerge.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitCreateNavClass.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitCreateNavClass.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitCreateNavClass.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitCreateNavClass.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitCustom020.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitCustom020.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitCustom020.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitCustom020.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitFilter.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitFilter.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitFilter.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitFilter.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitGridSave.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitGridSave.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitGridSave.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitGridSave.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitManyToMany.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitManyToMany.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitManyToMany.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitManyToMany.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitNavDynamic.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitNavDynamic.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitNavDynamic.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitNavDynamic.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitOneToMany.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitOneToMany.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitOneToMany.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitOneToMany.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitOneToMany2.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitOneToMany2.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitOneToMany2.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitOneToMany2.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitOneToManyUpdate21.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitOneToManyUpdate21.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitOneToManyUpdate21.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitOneToManyUpdate21.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitOneToManyafdaa.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitOneToManyafdaa.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitOneToManyafdaa.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitOneToManyafdaa.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitOneToOneDel.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitOneToOneDel.cs
similarity index 96%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitOneToOneDel.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitOneToOneDel.cs
index 2502b78bc..dbd72850d 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitOneToOneDel.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitOneToOneDel.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Text;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitOneToOneNAny.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitOneToOneNAny.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitOneToOneNAny.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitOneToOneNAny.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitSplitTask.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitSplitTask.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitSplitTask.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitSplitTask.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitStringToExp.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitStringToExp.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitStringToExp.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitStringToExp.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitSubToList.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitSubToList.cs
similarity index 99%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitSubToList.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitSubToList.cs
index 258ea5f80..660669f63 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitSubToList.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitSubToList.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections;
using System.Collections.Generic;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitTest.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitTest.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitTest.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitTest.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitTestReturnPkList.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitTestReturnPkList.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitTestReturnPkList.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitTestReturnPkList.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitTool.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitTool.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitTool.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitTool.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitUpdateColums.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitUpdateColums.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UnitUpdateColums.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UnitUpdateColums.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitadfasdfa.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitadfasdfa.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitadfasdfa.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitadfasdfa.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitadfasfa.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitadfasfa.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitadfasfa.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitadfasfa.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/EmpDepartmentJob.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/EmpDepartmentJob.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/EmpDepartmentJob.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/EmpDepartmentJob.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/EmpInformation.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/EmpInformation.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/EmpInformation.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/EmpInformation.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/EmpLicense.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/EmpLicense.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/EmpLicense.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/EmpLicense.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/EmpLicenseLogOff.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/EmpLicenseLogOff.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/EmpLicenseLogOff.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/EmpLicenseLogOff.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/PRT_BMS_SA_WEBCON_DOC_V.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/PRT_BMS_SA_WEBCON_DOC_V.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/PRT_BMS_SA_WEBCON_DOC_V.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/PRT_BMS_SA_WEBCON_DOC_V.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/PRT_BMS_SA_WEBCON_DTL_VP.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/PRT_BMS_SA_WEBCON_DTL_VP.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/PRT_BMS_SA_WEBCON_DTL_VP.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/PRT_BMS_SA_WEBCON_DTL_VP.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/Unitasf1.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/Unitasf1.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/Unitasf1.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/Unitasf1.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/entity/app_category.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/entity/app_category.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/entity/app_category.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/entity/app_category.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/entity/app_comment.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/entity/app_comment.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/entity/app_comment.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/entity/app_comment.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/entity/app_revision.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/entity/app_revision.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/entity/app_revision.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/entity/app_revision.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/entity/app_topic.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/entity/app_topic.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/entity/app_topic.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/entity/app_topic.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/entityMap/app_topic.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/entityMap/app_topic.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/entityMap/app_topic.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/entityMap/app_topic.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/entityMapDTO/app_topic.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/entityMapDTO/app_topic.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitasf1/entityMapDTO/app_topic.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitasf1/entityMapDTO/app_topic.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitfafaf231.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitfafaf231.cs
similarity index 98%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitfafaf231.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitfafaf231.cs
index 437a4566a..e019fc555 100644
--- a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitfafaf231.cs
+++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitfafaf231.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using SqlSeverTest.UserTestCases;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Net;
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitrasdfa.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitrasdfa.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Unitrasdfa.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Unitrasdfa.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/UpdateNavOneToOne.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UpdateNavOneToOne.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/UpdateNavOneToOne.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/UpdateNavOneToOne.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/UnitTest/Updateable.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Updateable.cs
similarity index 100%
rename from Src/Asp.NetCore2/SqlSeverTest/UnitTest/Updateable.cs
rename to Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/Updateable.cs
diff --git a/Src/Asp.NetCore2/SqlSeverTest/a1_Delete.cs b/Src/Asp.NetCore2/SqlSeverTest/a1_Delete.cs
new file mode 100644
index 000000000..03b37ce43
--- /dev/null
+++ b/Src/Asp.NetCore2/SqlSeverTest/a1_Delete.cs
@@ -0,0 +1,186 @@
+using SqlSugar;
+using System.Collections.Generic;
+
+namespace OrmTest
+{
+ internal class _a1_Delete
+ {
+ ///
+ /// 初始化删除操作的示例方法。
+ /// Initializes example methods for delete operations.
+ ///
+ internal static void Init()
+ {
+ // 获取新的数据库连接对象
+ // Get a new database connection object
+ var db = DbHelper.GetNewDb();
+
+ db.CodeFirst.InitTables();
+
+ // 调用各个删除操作的示例方法
+ // Calling example methods for various delete operations
+ DeleteSingleEntity(db);
+
+ // 批量删除实体的示例方法
+ // Example method for deleting entities in batch
+ DeleteBatchEntities(db);
+
+ // 批量删除并分页的示例方法
+ // Example method for deleting entities in batch with paging
+ DeleteBatchEntitiesWithPaging(db);
+
+ // 调用无主键实体删除的示例方法
+ // Calling example method for deleting entities without primary key
+ DeleteEntitiesWithoutPrimaryKey(db);
+
+ // 调用根据主键删除实体的示例方法
+ // Calling example method for deleting entity by primary key
+ DeleteEntityByPrimaryKey(1, db);
+
+ // 调用根据主键数组批量删除实体的示例方法
+ // Calling example method for deleting entities by primary key array
+ DeleteEntitiesByPrimaryKeyArray(db);
+
+ // 调用根据表达式删除实体的示例方法
+ // Calling example method for deleting entities by expression
+ DeleteEntitiesByExpression(db);
+
+ // 调用联表删除实体的示例方法
+ // Calling example method for deleting entities with join
+ DeleteEntitiesWithJoin(db);
+ }
+
+ ///
+ /// 删除单个实体的示例方法。
+ /// Example method for deleting a single entity.
+ ///
+ internal static void DeleteSingleEntity(ISqlSugarClient db)
+ {
+ // 删除指定 Id 的学生实体
+ // Delete the student entity with the specified Id
+ db.Deleteable(new Student() { Id = 1 }).ExecuteCommand();
+ }
+
+ ///
+ /// 批量删除实体的示例方法。
+ /// Example method for deleting entities in batch.
+ ///
+ internal static void DeleteBatchEntities(ISqlSugarClient db)
+ {
+ // 创建学生实体列表
+ // Create a list of student entities
+ List list = new List()
+ {
+ new Student() { Id = 1 }
+ };
+
+ // 批量删除学生实体
+ // Delete student entities in batch
+ db.Deleteable(list).ExecuteCommand();
+ }
+
+ ///
+ /// 批量删除并分页的示例方法。
+ /// Example method for deleting entities in batch with paging.
+ ///
+ internal static void DeleteBatchEntitiesWithPaging(ISqlSugarClient db)
+ {
+ // 创建订单实体列表
+ // Create a list of order entities
+ List list = new List();
+
+ // 批量删除订单实体并分页
+ // Delete order entities in batch with paging
+ db.Deleteable(list).PageSize(500).ExecuteCommand();
+ }
+
+ ///
+ /// 无主键实体删除的示例方法。
+ /// Example method for deleting entities without primary key.
+ ///
+ internal static void DeleteEntitiesWithoutPrimaryKey( ISqlSugarClient db)
+ {
+ List orders = new List()
+ {
+ new Order() { Id = 1 },
+ new Order() { Id = 2 }
+ };
+
+ // 根据指定的实体列表的 Id 列进行删除
+ // Delete entities based on the Id column of the specified entity list
+ db.Deleteable().WhereColumns(orders, it => new { it.Id }).ExecuteCommand();
+ }
+
+ ///
+ /// 根据主键删除实体的示例方法。
+ /// Example method for deleting an entity by primary key.
+ ///
+ internal static void DeleteEntityByPrimaryKey(int id, ISqlSugarClient db)
+ {
+ // 根据指定的 Id 删除学生实体
+ // Delete the student entity with the specified Id
+ db.Deleteable().In(id).ExecuteCommand();
+ }
+
+ ///
+ /// 根据主键数组批量删除实体的示例方法。
+ /// Example method for deleting entities by primary key array.
+ ///
+ internal static void DeleteEntitiesByPrimaryKeyArray(ISqlSugarClient db)
+ {
+ // 定义主键数组
+ // Define an array of primary keys
+ int[] ids = { 1, 2 };
+
+ // 根据指定的 Id 数组批量删除学生实体
+ // Delete student entities in batch based on the specified Id array
+ db.Deleteable().In(ids).ExecuteCommand();
+ }
+
+ ///
+ /// 根据表达式删除实体的示例方法。
+ /// Example method for deleting entities by expression.
+ ///
+ internal static void DeleteEntitiesByExpression(ISqlSugarClient db)
+ {
+ // 根据指定的表达式删除学生实体
+ // Delete the student entity based on the specified expression
+ db.Deleteable().Where(it => it.Id == 1).ExecuteCommand();
+ }
+
+ ///
+ /// 联表删除实体的示例方法。
+ /// Example method for deleting entities with join.
+ ///
+ internal static void DeleteEntitiesWithJoin(ISqlSugarClient db)
+ {
+ // 联表删除学生实体
+ // Delete student entities with join
+ db.Deleteable()
+ .Where(p => SqlFunc.Subqueryable().Where(s => s.Id == p.SchoolId).Any())
+ .ExecuteCommand();
+ }
+
+ [SugarTable("Students_a1")]
+ public class Student
+ {
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] // 主键
+ public int Id { get; set; }
+
+ public string Name { get; set; }
+
+ public int SchoolId { get; set; }
+ }
+
+ [SugarTable("Orders_a2")]
+ public class Order
+ {
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] // 主键
+ public int Id { get; set; }
+
+ public string OrderNumber { get; set; }
+
+ public decimal Amount { get; set; }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Src/Asp.NetCore2/SqlSeverTest/a2_Sql.cs b/Src/Asp.NetCore2/SqlSeverTest/a2_Sql.cs
new file mode 100644
index 000000000..ec9efb782
--- /dev/null
+++ b/Src/Asp.NetCore2/SqlSeverTest/a2_Sql.cs
@@ -0,0 +1,74 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+
+namespace OrmTest
+{
+ internal class _a2_Sql
+ {
+ ///
+ /// 初始化 SQL 操作的示例方法。
+ /// Initializes example methods for SQL operations.
+ ///
+ internal static void Init()
+ {
+ // 获取新的数据库连接对象
+ // Get a new database connection object
+ var db = DbHelper.GetNewDb();
+
+ // CodeFirst 初始化 ClassA 表
+ // CodeFirst initializes the ClassA table
+ db.CodeFirst.InitTables();
+ db.Insertable(new ClassA() { Name = Guid.NewGuid().ToString("N") }).ExecuteCommand();
+
+ // 1. 无参数查询 DataTable
+ // 1. Query DataTable without parameters
+ var dt1 = db.Ado.GetDataTable("SELECT * FROM Table_a2");
+
+ // 2. 带参数查询 DataTable(简化用法)
+ // 2. Query DataTable with parameters (simplified usage)
+ var dt2 = db.Ado.GetDataTable("SELECT * FROM Table_a2 WHERE id=@id AND name LIKE @name",
+ new { id = 1, name = "%Jack%" });
+
+ // 3. 带参数查询 DataTable(复杂用法)
+ // 3. Query DataTable with parameters (complex usage)
+ var parameters = new List
+ {
+ new SugarParameter("@id", 1),
+ new SugarParameter("@name", "%Jack%",System.Data.DbType.AnsiString)//DbType
+ };
+ var dt3 = db.Ado.GetDataTable("SELECT * FROM Table_a2 WHERE id=@id AND name LIKE @name", parameters);
+
+ // 4. 带参数查询 DataTable(结合用法)
+ // 4. Query DataTable with parameters (combined usage)
+ var dynamicParameters = db.Ado.GetParameters(new { p = 1, p2 = "A" });
+ var dt4 = db.Ado.GetDataTable("SELECT * FROM Table_a2 WHERE id=@p AND name=@p2", dynamicParameters);
+
+ // 原生 SQL 使用实体进行查询
+ // Native SQL query using an entity
+ List entities = db.Ado.SqlQuery("SELECT * FROM Table_a2");
+ List entities2 = db.Ado.SqlQuery("SELECT * FROM Table_a2 WHERE ID>@ID",new { ID=1});
+
+ // 原生 SQL 使用匿名对象进行查询
+ // Native SQL query using an anonymous object
+ List anonymousObjects = db.Ado.SqlQuery("SELECT * FROM Table_a2");
+
+ // 执行 SQL 命令(插入、更新、删除操作)
+ // Execute SQL commands (insert, update, delete operations)
+ db.Ado.ExecuteCommand("INSERT INTO Table_a2 (name) VALUES ( 'New Record')");
+ }
+
+ ///
+ /// 示例实体类。
+ /// Example entity class.
+ ///
+ [SugarTable("Table_a2")]
+ public class ClassA
+ {
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+
+ public string Name { get; set; }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Src/Asp.NetCore2/SqlSeverTest/a3_Merge.cs b/Src/Asp.NetCore2/SqlSeverTest/a3_Merge.cs
new file mode 100644
index 000000000..561dd248c
--- /dev/null
+++ b/Src/Asp.NetCore2/SqlSeverTest/a3_Merge.cs
@@ -0,0 +1,51 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OrmTest
+{
+ internal class _a3_Merge
+ {
+ // 中文备注:初始化方法(用于大数据处理)
+ // English Comment: Initialization method (for big data processing)
+ internal static void Init()
+ {
+ var db = DbHelper.GetNewDb();
+ //建表
+ //Create table
+ db.CodeFirst.InitTables();
+ var list = new List() { new Order() { Name = "jack" } };
+
+ // 中文备注:执行插入或更新操作
+ // English Comment: Perform insert or update operation
+ db.Storageable(list).ExecuteCommand();
+
+ // 中文备注:分页执行插入或更新操作,每页1000条记录
+ // English Comment: Perform insert or update operation with paging, 1000 records per page
+ db.Storageable(list).PageSize(1000).ExecuteCommand();
+
+ // 中文备注:带异常处理的分页插入或更新操作,每页1000条记录
+ // English Comment: Perform insert or update operation with exception handling and paging, 1000 records per page
+ db.Storageable(list).PageSize(1000, exrows => { }).ExecuteCommand();
+
+ // 中文备注:使用Fastest方式批量合并数据(用于大数据处理)
+ // English Comment: Merge data using Fastest method (for big data processing)
+ db.Fastest().BulkMerge(list);
+
+ // 中文备注:分页使用Fastest方式批量合并数据,每页100000条记录(用于大数据处理)
+ // English Comment: Merge data using Fastest method with paging, 100000 records per page (for big data processing)
+ db.Fastest().PageSize(100000).BulkMerge(list);
+ }
+
+ [SqlSugar.SugarTable("Order_a3")]
+ public class Order
+ {
+ [SqlSugar.SugarColumn(IsPrimaryKey =true,IsIdentity =true)]
+ public int Id { get; set; }
+ public string Name { get; set; }
+ // 其他属性
+ }
+ }
+}
\ No newline at end of file