Document

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最轻量,也能有不错的性能,且容易上手

性能方面:SqlSugar的性能比EF更高,尤其是在进行CRUD操作时。
日志跟踪:SqlSugar的日志跟踪功能比EF更好。
代码生成数据库:SqlSugar可以通过代码生成数据库,而EF不支持。
批量操作: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";
}
}

近而数据库创建成功

posted @ 2024-04-12 14:52  从未被超越  阅读(236)  评论(0编辑  收藏  举报