在.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=""};
}
}
}