ASP.NET 在Core项目中使用SqlSugar连接多个数据库的方式

学习ASP.NETCore及SqlSugar时都是只连接单个数据库处理数据,仅需在Program文件中添加ISqlSugarClient的单例即可(如下代码所示)。

builder.Services.AddSingleton<ISqlSugarClient>(s =>
{
SqlSugarScope sqlSugar = new SqlSugarScope(new ConnectionConfig()
{
DbType = SqlSugar.DbType.SqlServer,
ConnectionString = builder.Configuration.GetValue<string>(“dbContext”),
IsAutoCloseConnection = false,
});

return sqlSugar;
});
如果需要连接多个数据库(不是跨数据库联查,仅是连两个数据库),第一时间想到的是创建多个全局实例,在需要的地方直接调用。原先使用Linq的时候经常这么干,每个DBContext对应一个数据库,程序启动时创建多个DBContext实例,然后在WebService中直接使用。
百度“sqlsugar 多数据库”,不少文件介绍使用SqlSugar的多租户或仓储方式连接多数据,没有深入看下去,感觉很麻烦。最后参考百度搜索工具给的建议,创建包含多个ISqlSugarClient属性的类,每个属性对应一个数据库连接,然后调用builder.Services.AddSingleton注册实例服务。大致实现代码如下:

public class MultiDBClient
{
public ISqlSugarClient DB1 { get; set; }

public ISqlSugarClient DB2 { get; set; }
}

builder.Services.AddSingleton<MultiDBClient>(s =>
{
MultiDBClient client = new MultiDBClient();

SqlSugarScope sqlSugar = new SqlSugarScope(new ConnectionConfig()
{
DbType = SqlSugar.DbType.SqlServer,
ConnectionString = builder.Configuration.GetValue<string>(“dbContext1”),
IsAutoCloseConnection = true,
});

client.DB1 = sqlSugar;

sqlSugar = new SqlSugarScope(new ConnectionConfig()
{
DbType = SqlSugar.DbType.SqlServer,
ConnectionString = builder.Configuration.GetValue<string>(“dbContext2”),
IsAutoCloseConnection = true,
});

client.DB2 = sqlSugar;

return client;
});

public class ECDataController : ControllerBase
{
private ISqlSugarClient m_sugarClient;

public ECDataController(MultiDBClient client, IWebHostEnvironment env, ILoggerProvider logger)
{
m_sugarClient=client.DB2;
}
}
ASP.NET 在Core项目中使用SqlSugar连接多个数据库的方式插图

欢迎使用66资源网
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
7. 本站有不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!

66源码网 » ASP.NET 在Core项目中使用SqlSugar连接多个数据库的方式

提供最优质的资源集合

立即查看 了解详情