C#架构设计,基于SqlSugar的CodeFirst一套数据库访问交互框架设计,一行代码配置假删除

本文主要是介绍C#架构设计,基于SqlSugar的CodeFirst一套数据库访问交互框架设计,一行代码配置假删除,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SqlSugar是一个基于.NET的国产ORM(对象关系映射)库,它提供了简单而强大的方式来操作数据库。

以下是SqlSugar的一些关键特性和简介:

  1. SqlSugar是一个基于.NET的ORM(对象关系映射)库,它提供了简单而强大的方式来操作数据库。以下是SqlSugar的一些关键特性和简介:

  2. 支持多数据库类型:
    SqlSugar支持多种数据库类型,包括但不限于SqlServer、MySql、SQLite、Oracle、PostgreSQL等。

  3. 轻量级且高性能: SqlSugar设计为轻量级且性能出色。它使用了一些优化技术,例如缓存机制和SQL优化,以提供高效的数据库访问性能。

  4. Lambda表达式:
    SqlSugar允许使用Lambda表达式进行数据库查询,这样可以更直观地构建查询条件,减少了手写SQL语句的需要。

  5. 支持事务操作: SqlSugar提供了简单的事务操作,允许你在一组数据库操作中实现事务。

  6. 强大的模型缓存: SqlSugar具有一个内置的模型缓存系统,可以提高反射性能,从而提高数据访问速度。

  7. 面向对象的设计: SqlSugar采用面向对象的设计理念,使得开发者可以使用对象来表示数据库表,简化了数据操作。

  8. 支持分页: SqlSugar内置了对分页操作的支持,方便处理大量数据的分页显示。

  9. CodeFirst和DbFirst:
    SqlSugar支持CodeFirst(基于代码的数据库设计)和DbFirst(基于数据库的代码生成)两种开发模式,根据项目需要选择适合的方式。

框架结构
在这里插入图片描述

首先介绍下CodeFirst的方式生成代码:

注意我们需要先定义好数据库

using SqlSugar;namespace DBFirst
{public class AutoCreateModel{public void Create(){Console.WriteLine("Start Create!");var db = SqlClient.Instance;db.DbFirst.IsCreateAttribute().CreateClassFile("D:\\demo", "Models");Console.WriteLine("Success!");}}
}

这里配置数据库属性,配置假删除,即逻辑删除,实际数据库中会放置一个标志字段

using SqlSugar;namespace DBFirst
{public class SqlClient{private static ISqlSugarClient? instance;private static readonly object lockObject = new object();// 私有构造函数,防止外部直接实例化private SqlClient(){}public static ISqlSugarClient Instance{get{if (instance == null){lock (lockObject){if (instance == null){string connectionString = "Server=locahost;Database=odata;uid=root;pwd=12345";// 初始化SqlSugar客户端instance = new SqlSugarClient(new ConnectionConfig(){ConnectionString = connectionString,DbType = DbType.MySql,IsAutoCloseConnection = true,InitKeyType = InitKeyType.Attribute},instance =>{//逻辑删除配置,配置后,查询都是根据逻辑字段判断instance.QueryFilter.Add(new TableFilterItem<ILogicDeleteModel>(it => it.DeleteState == false));});}}}return instance;}}}
}

定义个逻辑删除字段接口,所有model继承这个接口

namespace DBFirst
{public interface ILogicDeleteModel{bool DeleteState { get; set; }}
}

接口定义常用的操作:
在这里插入图片描述
然后再server中去实现

在这里插入图片描述
所有你定义的表继承这个默认Service之后立刻实现所有的数据库操作方式

依赖注入所有的Service
在这里插入图片描述
快速使用下试试:
在这里插入图片描述
开源代码:https://gitee.com/zuiyuewentian/sql-sugar-test

这篇关于C#架构设计,基于SqlSugar的CodeFirst一套数据库访问交互框架设计,一行代码配置假删除的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/626401

相关文章

C#中Guid类使用小结

《C#中Guid类使用小结》本文主要介绍了C#中Guid类用于生成和操作128位的唯一标识符,用于数据库主键及分布式系统,支持通过NewGuid、Parse等方法生成,感兴趣的可以了解一下... 目录前言一、什么是 Guid二、生成 Guid1. 使用 Guid.NewGuid() 方法2. 从字符串创建

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素