Yuebon.Extensions/ServiceExtensions/SqlSugarSetup.cs
(开头部分) 6KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using SqlSugar;
using StackExchange.Profiling;
using System.Linq.Expressions;
using Yuebon.Commons;
using Yuebon.Commons.Encrypt;
using Yuebon.Core.DataManager;
using Yuebon.Core.Models;
namespace Yuebon.Extensions.ServiceExtensions;
/// <summary>
/// SqlSugar 启动服务
/// </summary>
public static class SqlSugarSetup
{
/// <summary>
///
/// </summary>
/// <param name="services"></param>
/// <exception cref="ArgumentNullException"></exception>
public static void AddSqlSugarSetup(this IServiceCollection services)
{
if (services == null) throw new ArgumentNullException(nameof(services));
List<DbConnections> allDbs = DBServerProvider.GetAllDbConnections();
// 把多个连接对象注入服务,SqlSugarScope用AddSingleton单例
services.AddSingleton<ISqlSugarClient>(o =>
{
// 连接字符串
var connectionConfigs = new List<ConnectionConfig>();
bool conStringEncrypt = Configs.GetConfigurationValue("AppSetting", "ConStringEncrypt").ToBool();
allDbs.ForEach(m =>
{
ConnectionConfig config = new ConnectionConfig()
{
ConfigId = m.ConnId.ToLower(),
ConnectionString =conStringEncrypt? DEncrypt.Decrypt(m.MasterDB.ConnectionString): m.MasterDB.ConnectionString,
DbType = (DbType)m.MasterDB.DatabaseType,
IsAutoCloseConnection = true,
};
if (m.ReadDB!=null)
{
List<SlaveConnectionConfig> slaveConnectionConfigs= new List<SlaveConnectionConfig>();
m.ReadDB.ForEach(r =>
{
if (r.Enabled)
{
slaveConnectionConfigs.Add(new SlaveConnectionConfig()
{
HitRate = r.HitRate,
ConnectionString = conStringEncrypt ? DEncrypt.Decrypt(r.ConnectionString) : r.ConnectionString
});
}
});
config.SlaveConnectionConfigs = slaveConnectionConfigs;
}
connectionConfigs.Add(config);
});
return new SqlSugarScope(connectionConfigs, db =>
{
后面还有 98 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。