From aaf6ce73826042f59a4248d526b94527a5444ef2 Mon Sep 17 00:00:00 2001
From: sunkaixuan <610262374@qq.com>
Date: Mon, 6 Nov 2023 20:34:12 +0800
Subject: [PATCH] Add demo
---
Src/Asp.Net/SqlServerTest/a1_Delete.cs | 180 ++++++++++++++++++++++++-
1 file changed, 175 insertions(+), 5 deletions(-)
diff --git a/Src/Asp.Net/SqlServerTest/a1_Delete.cs b/Src/Asp.Net/SqlServerTest/a1_Delete.cs
index 4f374f962..03b37ce43 100644
--- a/Src/Asp.Net/SqlServerTest/a1_Delete.cs
+++ b/Src/Asp.Net/SqlServerTest/a1_Delete.cs
@@ -1,16 +1,186 @@
-using System;
+using SqlSugar;
using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
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