You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
2.7 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Microsoft.IdentityModel.Logging;
using SqlSugar;
using System;
using System.Threading.Tasks;
namespace Ems.CollectService.SqlSugarCore
{
public class SqlGenerator
{
#region 参数定义
private static string ConnectionString = "Data Source=nyfw-m.db.sfcloud.local;Port=3306;Initial Catalog=sfemsrefactor;uid=highwayiot; pwd=Administrator@;min pool size=1;SslMode=none;Charset=utf8";
//private static string ConnectionString = "Data Source=43.143.98.48;Port=3306;Initial Catalog=hw_ems;uid=root; pwd=yq@123456;min pool size=1;SslMode=none;Charset=utf8";
private static SqlSugarClient sqlSugarClient = null;
private static readonly object lockHelper = new object();
#endregion
/// <summary>
/// 连接服务器数据库
/// </summary>
/// <returns></returns>
public static SqlSugarClient GetMySqlInstance()
{
if (sqlSugarClient == null)
{
lock (lockHelper)
{
if (sqlSugarClient == null)
{
sqlSugarClient = new SqlSugarClient(new ConnectionConfig()
{
DbType = DbType.MySql,
ConnectionString = ConnectionString,
InitKeyType = InitKeyType.Attribute,
IsAutoCloseConnection = true,
//AopEvents = new AopEvents
//{
// //记录执行SQL和参数
// OnLogExecuting = (sql, p) =>
// {
// LogHelper.SqlLog(sql);
// }
//}
});
sqlSugarClient.Aop.OnLogExecuting = (sql, pars) =>
{
Parallel.For(0, 1, e =>
{
string SqlLog = "";
foreach (string item in new string[] { GetParas(pars), "【SQL语句】" + sql })
{
SqlLog = SqlLog + item;
}
});
};
}
}
}
return sqlSugarClient;
}
private static string GetParas(SugarParameter[] pars)
{
string key = "【SQL参数】";
foreach (var param in pars)
{
key += $"{param.ParameterName}:{param.Value}\n";
}
return key;
}
}
}