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";
}
}
近而数据库创建成功