03.Net6的 Webapi 添加sqlsugarcore使用步骤

在.NET 6的Web API中添加SqlSugarCore的步骤如下:

1 添加SqlSugarCore包

首先,通过NuGet包管理器安装SqlSugarCore。在Visual Studio中,打开“NuGet包管理器”并搜索“SqlSugar”,然后选择与您的项目匹配的版本进行安装1。

 <ItemGroup>
    <PackageReference Include="SqlSugarCore" Version="5.1.4.104" />
  </ItemGroup>

2 集成SqlSugarCore到aspnetcore

在Program.cs文件中添加如下代码1:

//注册SqlSugar用AddScoped
            builder.Services.AddScoped<ISqlSugarClient>(s =>
            {
                //Scoped用SqlSugarClient 
                SqlSugarClient sqlSugar = new SqlSugarClient(new ConnectionConfig()
                {
                    DbType = SqlSugar.DbType.SqlServer,
                    ConnectionString = builder.Configuration.GetConnectionString("DbSqlServer"),
                    IsAutoCloseConnection = true,
                },
                 //SqlSugarClient sqlSugar = new SqlSugarClient(new ConnectionConfig()
                 //{
                 //    DbType = SqlSugar.DbType.Sqlite,
                 //    ConnectionString = "DataSource=world_system.db",
                 //    IsAutoCloseConnection = true,
                 //},
               db =>
               {
                   //单例参数配置,所有上下文生效
                   db.Aop.OnLogExecuting = (sql, pars) =>
                   {
                       //获取IOC对象不要求在一个上下文
                       //vra log=s.GetService<Log>()

                       //获取IOC对象要求在一个上下文
                       //var appServive = s.GetService<IHttpContextAccessor>();
                       //var log= appServive?.HttpContext?.RequestServices.GetService<Log>();
                   };
               });
                return sqlSugar;
            });

            builder.Services.AddTransient<IUserInfoService, UserInfoService>();

3 添加数据库实体类

using SqlSugar;
using System.Diagnostics.SymbolStore;

namespace WorldSystem.Api.Models.Entities
{
    public class UserInfo
    {
        [SugarColumn(IsPrimaryKey =true,IsIdentity =true,ColumnDescription ="")]
        public int Id { get; set; }
        public string QQ { get; set; }

        [SugarColumn(IsNullable = true)]
        public string? Mobile { get; set; }       
        public string Password { get; set; }
        public string NickName {get; set; }

        [SugarColumn(IsNullable = true)]
        public DateTime? RegDateTime { get; set; }
        [SugarColumn(IsNullable = true)]
        public DateTime? LoginLastTime { get; set;}
    }
}

4 添加服务类UserInfoService

添加dto

namespace WorldSystem.Api.Models.Services.User.Dto
{
    public class LoginDto
    {
        public int Id { get; set; }
        public string? QQ { get; set; }
        public string? Mobile { get; set; }
        public string? Password { get; set; }
        public string? NickName { get; set; }
    }
}

添加服务类

using WorldSystem.Api.Models.Entities;
using WorldSystem.Api.Models.Services.User.Dto;

namespace WorldSystem.Api.Models.Services.User
{
    public interface IUserInfoService
    {
        Task<UserInfo> CheckLogin(LoginDto loginDto);

    }
}


using SqlSugar;
using WorldSystem.Api.Common.Db;
using WorldSystem.Api.Models.Entities;
using WorldSystem.Api.Models.Services.User.Dto;

namespace WorldSystem.Api.Models.Services.User
{
    public class UserInfoService : IUserInfoService
    {
        private readonly ISqlSugarClient _db;

        public UserInfoService(ISqlSugarClient db)
        {
            this._db = db;
        }

        public async Task<UserInfo> CheckLogin(LoginDto loginDto)
        {
            return await _db.Queryable<UserInfo>().FirstAsync(p => p.QQ.Equals(loginDto.QQ) && p.Password.Equals(loginDto.Password));
        }
    }
}

5 控制器中使用服务类

using Microsoft.AspNetCore.Mvc;
using WorldSystem.Api.Models.Entities;
using WorldSystem.Api.Models.Services.User;
using WorldSystem.Api.Models.Services.User.Dto;

namespace WorldSystem.Api.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class UsersController : ControllerBase
    {
        private readonly ILogger<UsersController> _logger;
        private readonly IUserInfoService _userInfoService;

        public UsersController(ILogger<UsersController> logger, IUserInfoService userInfoService)
        {
            this._logger = logger;
            this._userInfoService = userInfoService;
        }

        [HttpPost("[action]")]
        public async Task<dynamic> Login(LoginDto loginDto)
        {
            UserInfo userInfo = await _userInfoService.CheckLogin(loginDto);
            return userInfo;
            //return new{Data= userInfo ,Code=200,Msg=""};
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值