65 lines
1.9 KiB
C#
65 lines
1.9 KiB
C#
using SqlSugar;
|
|
using System;
|
|
using System.Linq;
|
|
using HT.Cloud.Code;
|
|
|
|
namespace HT.Cloud.DataBase
|
|
{
|
|
public class DBContexHelper
|
|
{
|
|
private static string defaultDbType = GlobalContext.SystemConfig.DBProvider;
|
|
private static string defaultDbConnectionString = AESKeyEncrypt.DecryptDES(GlobalContext.SystemConfig.DBConnectionString);
|
|
|
|
public static ConnectionConfig Contex(string ConnectStr = "", string providerName = "")
|
|
{
|
|
ConnectStr = string.IsNullOrEmpty(ConnectStr) ? defaultDbConnectionString : ConnectStr;
|
|
providerName = string.IsNullOrEmpty(providerName) ? defaultDbType : providerName;
|
|
var dbType = Convert.ToInt32(Enum.Parse(typeof(DbType), providerName));
|
|
if (dbType == Convert.ToInt32(DbType.SqlServer))
|
|
{
|
|
return new ConnectionConfig()
|
|
{
|
|
DbType = (DbType)dbType,
|
|
InitKeyType = InitKeyType.Attribute,
|
|
IsAutoCloseConnection = true,
|
|
ConnectionString = ConnectStr,
|
|
MoreSettings = new ConnMoreSettings()
|
|
{
|
|
IsAutoRemoveDataCache = true//自动清理缓存
|
|
},
|
|
ConfigureExternalServices = new ConfigureExternalServices()
|
|
{
|
|
DataInfoCacheService = new SqlSugarCache(), //配置我们创建的缓存类
|
|
EntityService = (property, column) =>
|
|
{
|
|
var attributes = property.GetCustomAttributes(true);//get all attributes
|
|
|
|
if (attributes.Any(it => it is SugarColumn) && column.DataType == "longtext")
|
|
{
|
|
column.DataType = "nvarchar(4000)";
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}
|
|
else
|
|
{
|
|
return new ConnectionConfig()
|
|
{
|
|
DbType = (DbType)dbType,
|
|
InitKeyType = InitKeyType.Attribute,
|
|
IsAutoCloseConnection = true,
|
|
ConnectionString = ConnectStr,
|
|
ConfigureExternalServices = new ConfigureExternalServices()
|
|
{
|
|
DataInfoCacheService = new SqlSugarCache() //配置我们创建的缓存类
|
|
},
|
|
MoreSettings = new ConnMoreSettings()
|
|
{
|
|
IsAutoRemoveDataCache = true//自动清理缓存
|
|
}
|
|
};
|
|
}
|
|
}
|
|
}
|
|
} |