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

相关文章

SpringBoot中HTTP连接池的配置与优化

《SpringBoot中HTTP连接池的配置与优化》这篇文章主要为大家详细介绍了SpringBoot中HTTP连接池的配置与优化的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、HTTP连接池的核心价值二、Spring Boot集成方案方案1:Apache HttpCl

Java进行日期解析与格式化的实现代码

《Java进行日期解析与格式化的实现代码》使用Java搭配ApacheCommonsLang3和Natty库,可以实现灵活高效的日期解析与格式化,本文将通过相关示例为大家讲讲具体的实践操作,需要的可以... 目录一、背景二、依赖介绍1. Apache Commons Lang32. Natty三、核心实现代

C#特性(Attributes)和反射(Reflection)详解

《C#特性(Attributes)和反射(Reflection)详解》:本文主要介绍C#特性(Attributes)和反射(Reflection),具有很好的参考价值,希望对大家有所帮助,如有错误... 目录特性特性的定义概念目的反射定义概念目的反射的主要功能包括使用反射的基本步骤特性和反射的关系总结特性

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

python通过curl实现访问deepseek的API

《python通过curl实现访问deepseek的API》这篇文章主要为大家详细介绍了python如何通过curl实现访问deepseek的API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... API申请和充值下面是deepeek的API网站https://platform.deepsee

Maven 插件配置分层架构深度解析

《Maven插件配置分层架构深度解析》:本文主要介绍Maven插件配置分层架构深度解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Maven 插件配置分层架构深度解析引言:当构建逻辑遇上复杂配置第一章 Maven插件配置的三重境界1.1 插件配置的拓扑

Spring Boot集成Logback终极指南之从基础到高级配置实战指南

《SpringBoot集成Logback终极指南之从基础到高级配置实战指南》Logback是一个可靠、通用且快速的Java日志框架,作为Log4j的继承者,由Log4j创始人设计,:本文主要介绍... 目录一、Logback简介与Spring Boot集成基础1.1 Logback是什么?1.2 Sprin

SpringBoot实现二维码生成的详细步骤与完整代码

《SpringBoot实现二维码生成的详细步骤与完整代码》如今,二维码的应用场景非常广泛,从支付到信息分享,二维码都扮演着重要角色,SpringBoot是一个非常流行的Java基于Spring框架的微... 目录一、环境搭建二、创建 Spring Boot 项目三、引入二维码生成依赖四、编写二维码生成代码五

C#实现查找并删除PDF中的空白页面

《C#实现查找并删除PDF中的空白页面》PDF文件中的空白页并不少见,因为它们有可能是作者有意留下的,也有可能是在处理文档时不小心添加的,下面我们来看看如何使用Spire.PDFfor.NET通过C#... 目录安装 Spire.PDF for .NETC# 查找并删除 PDF 文档中的空白页C# 添加与删

Nginx 访问 /root/下 403 Forbidden问题解决

《Nginx访问/root/下403Forbidden问题解决》在使用Nginx作为Web服务器时,可能会遇到403Forbidden错误,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录解决 Nginx 访问 /root/test/1.html 403 Forbidden 问题问题复现Ng