SqlSuger的基本使用方法

96 阅读1分钟

SqlSuger

可以说是跟 EFCore的性质一样 都是属于ORM框架的一种,但是对比EFCore他就没那么繁琐

使用之前 首先安装包
Install-Package SqlSugar 安装完之后我们就可以使用using SqlSugar;

先看一下项目的结构:

image-20240205220604468.png

然后需要去配置 SqlSugar的依赖注入

using SqlSugar;
 
namespace demoAPI.Db
{
    public static class SqlsugarSetup
    {
        public static void AddSqlsugarSetup(this IServiceCollection services, IConfiguration configuration,
        string dbName = "ConnectString")
        {
            SqlSugarScope sqlSugar = new SqlSugarScope(new ConnectionConfig()
            {
            		//这里DbType看你用的是什么数据库
                DbType = SqlSugar.DbType.MySql,
                // SqlSugar.DbType.SqlServer
                ConnectionString = configuration[dbName],//这个是数据库的连接字符串
                IsAutoCloseConnection = true,
            },
                db =>
                {
                    //单例参数配置,所有上下文生效       
                    db.Aop.OnLogExecuting = (sql, pars) =>
                    {
                        Console.WriteLine(sql);//输出sql
                    };
 
                    //技巧:拿到非ORM注入对象
                    //services.GetService<注入对象>();
                });
            services.AddSingleton<ISqlSugarClient>(sqlSugar);
            //这边是SqlSugarScope用AddSingleton
        }
    }
}

配置完之后我们需要在Program.cs中进行注入操作

builder.Services.AddSqlsugarSetup(builder.Configuration);

然后再去配置一下连接字符串,看一下我们上面的依赖注入配置 string dbName = "ConnectString"

appsettings.json
"ConnectString": "Server=自己的用户名;Port=3306;Database=连接那个数据库;Uid=root;Pwd=123456;"

再到创建实体类 注意:这个实体类的所有参数以及实体类的名字都要和数据库的保持一直

(这种情况是用于有了数据库再去创建实体类,当然你也可以跟EFCore一样通过代码的迁移去创建数据库)

 public class YunXi
    {
        public long Id { get; set; }    
        public string Name { get; set; }
        public int Age { get; set; }
    }

创建控制器接口

namespace WebApplication5.Controllers
{
    [Route("api/[controller]/[action]")]
    [ApiController]
    public class TestController : ControllerBase
    {
        private readonly ISqlSugarClient db;
        public TestController( ISqlSugarClient db)
        {
            this.db = db;        
        }

        [HttpGet]
        public async Task<ActionResult<IEnumerable<YunXi>>> AAA()
        {
            return await db.Queryable<YunXi>().ToListAsync();
        }
    }
}
//查询全部 
var a = _SqlSugarDB.Queryable<UserInfo>().ToList();
var b = _SqlSugarDB.Queryable<UserInfo>().Where(a => a.UserID == "1").ToList();
//插入
var res =_SqlSugarDB.Insertable<UserInfo>(new UserInfo() { UserName = "LiuHG", Password = "123456", Role = 1 }).ExecuteCommand();
//更新
var res =_SqlSugarDB.Updateable(new UserInfo() { Id = 1, UserName = "lhg", Role = 2, Password = "123456" }).ExecuteCommand();
//删除
var res =_SqlSugarDB.Deleteable<UserInfo>().Where(it => it.Id == 1).ExecuteCommand();