asp.net core SqlSugar 多库切换

浪淘沙2年前后端435
  private readonly SqlSugar.ISqlSugarClient _db;

        public AIService(ISqlSugarClient db)
        {
           
            this._db = db.AsTenant().GetConnection("1");
        }
using Furion;
using Masuit.Tools;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using SqlSugar;
using System;
using System.Collections.Generic;
using xxtsoft.Common;

namespace xxtsoft.Core
{
    public static class SqlSugarSetup
    {

        public static void AddSqlSugarSetup(this IServiceCollection services, IConfiguration configuration, string conn = "ConnectionStrings:conn")
        {

            /**********多库调用示例*************
              * 
              * .cs
             private readonly SqlSugar.ISqlSugarClient _db;

                public testModel(SqlSugar.ISqlSugarClient db)
                {
                    this._db = db.AsTenant().GetConnection("0");           
                }
                public void OnGet()
                {     
                    dt = _db.Ado.GetDataTable("select * from configuration_properties");
                }
             }    
            * 
            * **************************************/


            SqlSugarScope sqlSugar = new SqlSugarScope(new List<ConnectionConfig>()
            {
               new ConnectionConfig()
               {
                    ConfigId = "0",
                    DbType = DbType.SqlServer,
                    ConnectionString = App.Configuration["ConnectionStrings:conn"],//连接sqlserver符字串
                    IsAutoCloseConnection = true,
                    InitKeyType=InitKeyType.Attribute
                   

               },
               new ConnectionConfig()
               {
                    ConfigId = "1",
                    DbType = DbType.MySql,
                    ConnectionString = App.Configuration["ConnectionStrings:connmszsdev"],//连接mysql符字串
                    IsAutoCloseConnection = true,
                    InitKeyType=InitKeyType.Attribute
                }
              },
                db =>
                {

                    db.Ado.CommandTimeOut = 500;

                    ////单例参数配置,所有上下文生效
                    //db.GetConnection("0").Aop.OnLogExecuting = (sql, pars) =>
                    //{
                    //    if (App.Configuration["debug:sql"].ToLower() == "true")
                    //    {
                    //        FileHelper.FileAdd(FileHelper.absolutPath("log.txt"), "=======" + DateTime.Now + "=======\r\n【ConfigId】1"+  db.CurrentConnectionConfig.ConnectionString + "\r\n【sql】\r\n" + sql + "\r\n【参数】\r\n" + pars.ToJsonString() + "\r\n\r\n");
                    //    }

                    //};
                    //db.GetConnection("1").Aop.OnLogExecuting = (sql, pars) =>
                    //{
                    //    if (App.Configuration["debug:sql"].ToLower() == "true")
                    //    {
                    //        FileHelper.FileAdd(FileHelper.absolutPath("log.txt"), "=======" + DateTime.Now + "=======\r\n【ConfigId】2" + db.CurrentConnectionConfig.ConnectionString + "\r\n【sql】\r\n" + sql + "\r\n【参数】\r\n" + pars.ToJsonString() + "\r\n\r\n");
                    //    }

                    //};

                });

            services.AddSingleton<ISqlSugarClient>(sqlSugar);//这边是SqlSugarScope用AddSingleton

        }
    }
}


相关文章

asp.net core razor onpost

不管 OnGet 填充多少东西OnPost 必须再填一次因为 Razor Pages 不会“记住” ViewModelPOST 后是重新执行一个请求,Model 全部重新创建。不像 WebForms,...

asp.net core 检测上传文件为图片格式

  #region 检测图片格式   var validMimeTypes = new[] { &...

asp.net core HttpClient post ,get

1、postvar url = "https://api.dingtalk.com/v1.0/oauth2/userAccessToken";...

asp.net core url编码

 HttpUtility.UrlEncode("https://fdy.eduw.cn/zf/index")...

asp.net core 中文 url 编码

 return Redirect("tj_send?fst=" + fst + "&rq1=" + rq1 + "&rq2=...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。