sqlsugar的使用与创建

 sqlsugar的认识

        SqlSugar 主要通过将数据表与实体类进行映射来实现数据的访问。它支持两种方式进行映射:一种是基于实体类的属性名与数据库表的列名完全一致的默认映射;另一种则是通过手动设置映射关系来进行自定义映射,以更好地满足项目中的需求。
        SqlSugar通过Queryable、Updateable、Deleteable和Insertable实现的增删改查。

实体类 

         [SugarTable("Student")]  SugarTable:如果实体类名称和表名不一致可以加上SugarTable特性指定表名
    [SugarColumn(ColumnName = "user_name")]  SugarColumn:用来定义实体类映射的数据表

 SugarColumn(属性、含义)

        1.ColumnName:指定数据库中对应的列名。
        2.ColumnDataType:指定映射的列的数据类型。
        3.IsPrimaryKey:指定该列是否为主键。
        4.IsNullable:指定该列是否可为空。
        5.IsIdentity:指定该列是否为自增长列。
        6.IsIgnore:是否忽略

 sqlsugar与efcore区别

EF Core 最复杂学习成本高,同时Code First功能也是最强的,SqlSuger最轻量,也能有不错的性能,且容易上手

  1. 性能方面:SqlSugar的性能比EF更高,尤其是在进行CRUD操作时。
  2. 日志跟踪:SqlSugar的日志跟踪功能比EF更好。
  3. 代码生成数据库:SqlSugar可以通过代码生成数据库,而EF不支持。
  4. 批量操作:SqlSugar对批量操作的支持比EF更好,可以进行批量新增、删除、修改,并且有返回值。

 使用

        下载安装包 

 

表的设计

 对sqlsugar的服务注入

//sqlsugar注入服务
builder.Services.AddScoped<ISqlSugarClient>(m =>
{
    return new SqlSugarClient(new ConnectionConfig()
    {
        ConnectionString = builder.Configuration.GetConnectionString("mysql"),
        DbType = DbType.MySql,
        IsAutoCloseConnection = true,
    });
});

 因为用的sqlsugar,并不需要命令进行数据迁移,需要使用方法进行(定义一个类)记住下面typeof有一个表就要在这定义一个

public class SugarDbcontext
    {
        private readonly ISqlSugarClient db;

        public SugarDbcontext(ISqlSugarClient db)
        {
            this.db = db;
        }

        public void CreatTable()
        {
            //没有数据库则创建
            db.DbMaintenance.CreateDatabase();
            //以codefirst的模式字符串长度为50的备份表
            db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
            {
                typeof(User)  //根据实体创建表
            });
        }
    }

控制器调用方法(运行进而使用方法)

public class CreateController : ControllerBase
    {
        private readonly SugarDbcontext db;

        public CreateController(SugarDbcontext db)
        {
            this.db = db;
        }

        /// <summary>
        /// 表添加进mysql数据库中
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public string CreateTable()
        {
            db.CreatTable();
            return "ok";
        }
    }

 近而数据库创建成功

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值