using Furion; using Microsoft.Extensions.Caching.Distributed; using Newtonsoft.Json; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BPA.MES.Base.Core { public class KepServerSqlsugar { /// /// 获基础信息库对象 (用IOC这块代码不能写到IOC里面) /// public static ISqlSugarClient KepDb { get { //如果是跨服务器分库,也需要动态配置的,因为库的IP会变 //参考业务库用法 string configId = "configId"; var dbs = App.GetConfig>("ConnectionConfigs")[0]; if (!Db.IsAnyConnection(configId)) { //用非默认ConfigId进行测试 //添加业务库只在当前上下文有效(原理:SqlSugarScope模式入门文档去看) Db.AddConnection(new ConnectionConfig() { ConfigId = configId, ConnectionString = dbs.ConnectionString, DbType = DbType.MySql, IsAutoCloseConnection = true, InitKeyType = InitKeyType.Attribute }); } //原理说明 //IsAnyConnection、AddConnection和GetConnection 都是Scope周期不同请求不会有影响 var result = Db.GetConnection(configId); //可以给业务库result设置AOP和过滤滤器 return result; } } //通过IOC获取注入的Db对象 public static SqlSugarScope Db { get { //如果用Furion就是 App.GetService(); //IOC不会可以看文档: https://www.donet5.com/Doc/27/2563 //var ihttp=你存储的Services.BuildServiceProvider().GetService(); var obj = App.GetService(); return (SqlSugarScope)obj; } } } }