wx
2022-02-18 b62ffe3c3a19aa7f2232c72d5fd81e893841c421
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;
using Furion;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using SqlSugar;
 
namespace ZTICInterface.Core;
 
public static class SqlsugarSetup
{
    public static void AddSqlsugarSetup(this IServiceCollection services, IConfiguration configuration, string dbName = "db_master")
    {
        //如果多个数数据库传 List<ConnectionConfig>
        var configConnection = new ConnectionConfig()
        {
            DbType = (DbType)Enum.Parse(typeof(DbType), App.Configuration["DatabaseSettings:Data:DbType"]),
            ConnectionString = App.Configuration["DatabaseSettings:MainDb:ConnectionString"],
            IsAutoCloseConnection = true,
        };
 
        SqlSugarScope sqlSugar = new SqlSugarScope(configConnection,
            db =>
            {
                //单例参数配置,所有上下文生效
                db.Aop.OnLogExecuting = (sql, p) =>
                {
                    Console.WriteLine(SqlProfiler.ParameterFormat(sql, p));
                    Console.WriteLine();
                    App.PrintToMiniProfiler("SqlSugar", "Info", SqlProfiler.ParameterFormat(sql, p));
                };
            });
 
        services.AddSingleton<ISqlSugarClient>(sqlSugar);//这边是SqlSugarScope用AddSingleton
    }
 
 
 
    public class SqlProfiler
    {
        public static string ParameterFormat(string sql, SugarParameter[] pars)
        {
            for (int index = pars.Length - 1; index >= 0; --index)
                sql = pars[index].DbType == System.Data.DbType.String || pars[index].DbType == System.Data.DbType.DateTime || pars[index].DbType == System.Data.DbType.Date || pars[index].DbType == System.Data.DbType.Time || pars[index].DbType == System.Data.DbType.DateTime2 || pars[index].DbType == System.Data.DbType.DateTimeOffset || pars[index].DbType == System.Data.DbType.Guid || pars[index].DbType == System.Data.DbType.VarNumeric || pars[index].DbType == System.Data.DbType.AnsiStringFixedLength || pars[index].DbType == System.Data.DbType.AnsiString || pars[index].DbType == System.Data.DbType.StringFixedLength ? sql.Replace(pars[index].ParameterName, "'" + pars[index].Value?.ToString() + "'") : (pars[index].DbType != System.Data.DbType.Boolean ? sql.Replace(pars[index].ParameterName, pars[index].Value?.ToString()) : sql.Replace(pars[index].ParameterName, Convert.ToBoolean(pars[index].Value) ? "1" : "0"));
            return sql;
        }
 
        public static string ParameterFormat(string sql, object pars)
        {
            SugarParameter[] pars1 = (SugarParameter[])pars;
            return SqlProfiler.ParameterFormat(sql, pars1);
        }
    }
}