本文主要是介绍C#架构设计,基于SqlSugar的CodeFirst一套数据库访问交互框架设计,一行代码配置假删除,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
SqlSugar是一个基于.NET的国产ORM(对象关系映射)库,它提供了简单而强大的方式来操作数据库。
以下是SqlSugar的一些关键特性和简介:
SqlSugar是一个基于.NET的ORM(对象关系映射)库,它提供了简单而强大的方式来操作数据库。以下是SqlSugar的一些关键特性和简介:
支持多数据库类型:
SqlSugar支持多种数据库类型,包括但不限于SqlServer、MySql、SQLite、Oracle、PostgreSQL等。轻量级且高性能: SqlSugar设计为轻量级且性能出色。它使用了一些优化技术,例如缓存机制和SQL优化,以提供高效的数据库访问性能。
Lambda表达式:
SqlSugar允许使用Lambda表达式进行数据库查询,这样可以更直观地构建查询条件,减少了手写SQL语句的需要。支持事务操作: SqlSugar提供了简单的事务操作,允许你在一组数据库操作中实现事务。
强大的模型缓存: SqlSugar具有一个内置的模型缓存系统,可以提高反射性能,从而提高数据访问速度。
面向对象的设计: SqlSugar采用面向对象的设计理念,使得开发者可以使用对象来表示数据库表,简化了数据操作。
支持分页: SqlSugar内置了对分页操作的支持,方便处理大量数据的分页显示。
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一套数据库访问交互框架设计,一行代码配置假删除的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!