当前位置:   article > 正文

C#架构设计,基于SqlSugar的CodeFirst一套数据库访问交互框架设计,一行代码配置假删除_.net core sqlsugar 生成 codfirst 框架

.net core sqlsugar 生成 codfirst 框架

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!");
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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

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;
            }
        }

    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

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

namespace DBFirst
{
    public interface ILogicDeleteModel
    {
        bool DeleteState { get; set; }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/135068
推荐阅读
相关标签
  

闽ICP备14008679号