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);
|
}
|
}
|
}
|