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.
105 lines
2.5 KiB
C#
105 lines
2.5 KiB
C#
using SqlSugar;
|
|
|
|
namespace NPin.Framework.SqlSugarCore.Abstractions;
|
|
|
|
public class DbConnOptions
|
|
{
|
|
/// <summary>
|
|
/// 连接字符串 必填
|
|
/// </summary>
|
|
public string? Url { get; set; }
|
|
|
|
/// <summary>
|
|
/// 数据库类型
|
|
/// </summary>
|
|
public DbType? DbType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 开启种子数据
|
|
/// </summary>
|
|
public bool EnabledDbSeed { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// 开启 CodeFirst 自动化表结构
|
|
/// </summary>
|
|
public bool EnabledCodeFirst { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// 开启sql日志
|
|
/// </summary>
|
|
public bool EnabledSqlLog { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// 实体程序集
|
|
/// </summary>
|
|
public List<string>? EntityAssembly { get; set; }
|
|
|
|
/// <summary>
|
|
/// 开启读写分离
|
|
/// </summary>
|
|
public bool EnabledReadWrite { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// 读写分离
|
|
/// </summary>
|
|
public List<string>? ReadUrl { get; set; }
|
|
|
|
/// <summary>
|
|
/// 开启Saas多租户
|
|
/// </summary>
|
|
public bool EnabledSaasMultiTenancy { get; set; } = false;
|
|
|
|
|
|
/// <summary>
|
|
/// 默认租户库连接,如果不填,那就是默认库的地址
|
|
/// </summary>
|
|
public string? MasterSaasMultiTenancyUrl { get; set; }
|
|
|
|
|
|
/// <summary>
|
|
/// Saas租户连接
|
|
/// </summary>
|
|
public List<SaasMultiTenancyOptions>? SaasMultiTenancy { get; set; }
|
|
|
|
public static string MasterTenantName = "Master";
|
|
public static string DefaultTenantName = "Default";
|
|
|
|
public SaasMultiTenancyOptions GetDefaultSaasMultiTenancy()
|
|
{
|
|
return new SaasMultiTenancyOptions { Name = DefaultTenantName, Url = Url };
|
|
}
|
|
|
|
public SaasMultiTenancyOptions? GetMasterSaasMultiTenancy()
|
|
{
|
|
if (EnabledSaasMultiTenancy == false)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
if (string.IsNullOrEmpty(MasterSaasMultiTenancyUrl))
|
|
{
|
|
return new SaasMultiTenancyOptions { Name = MasterTenantName, Url = Url };
|
|
}
|
|
else
|
|
{
|
|
return new SaasMultiTenancyOptions()
|
|
{
|
|
Name = MasterTenantName,
|
|
Url = MasterSaasMultiTenancyUrl
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
public class SaasMultiTenancyOptions
|
|
{
|
|
/// <summary>
|
|
/// 租户名称标识
|
|
/// </summary>
|
|
public string Name { get; set; }
|
|
|
|
/// <summary>
|
|
/// 连接Url
|
|
/// </summary>
|
|
public string Url { get; set; }
|
|
} |