首先连接SQL Server只需要安装SqlSugarCore包就可以了
数据库上下文类
/// <summary>
/// 数据库上下文类
/// </summary>
public static class SqlSugarContext
{
/// <summary>
/// 获取连接实例
/// </summary>
/// <param name="services"></param>
/// <param name="configuration"></param>
/// <param name="dbName"></param>
/// <returns></returns>
public static void AddSqlsugarSetup(this IServiceCollection services, IConfiguration configuration, string dbName)
{
SqlSugarScope sqlSugar = new SqlSugarScope(new ConnectionConfig()
{
ConnectionString = configuration.GetConnectionString(dbName),
DbType = DbType.MySql,// 切换数据库类型
IsAutoCloseConnection = true,// 自动释放和关闭数据库连接,如果有事务则结束时关闭,否则每次操作后关闭(false需要手动释放)
InitKeyType = InitKeyType.Attribute// 从实体特性中读取主键自增列信息
});
services.AddSingleton<ISqlSugarClient>(sqlSugar);// 这边是SqlSugarScope用AddSingleton
}
}
连接字符串配置
"ConnectionStrings": {
// 本地MySQL
"MySQLConnection": "server=127.0.0.1;uid=用户名;pwd=密码;port=3306;database=数据库名称;SslMode=None",
// 本地SQL Server
"SQLServerConnection": "Data Source=.;Initial Catalog=数据库名称;uid=用户名;pwd=密码;Pooling=true;"
}
Program赋值连接字符串
// SqlSugar注入
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSqlsugarSetup(builder.Configuration, "SQLServerConnection");
这样就可以直接使用了
private readonly ISqlSugarClient _dbContext;
public HomeDataService(ISqlSugarClient dbContext)
{
_dbContext = dbContext;
}
// 如果不存在创建数据库存在不会重复创建
// 注意 :Oracle和个别国产库需不支持该方法,需要手动建库
_dbContext.DbMaintenance.CreateDatabase();
// 创建表根据实体类CodeFirstTable
// 这样一个表就能成功创建了
_dbContext.CodeFirst.InitTables(typeof(MenuInfo));
MySQL则需要多安装一个nuget包:MySql.Data
修改连接字符串为MySQL连接
builder.Services.AddSqlsugarSetup(builder.Configuration, "MySQLConnection");
修改上下文类SqlSugarContext中的DbType为Mysql即可切换数据库