54 lines
1.9 KiB
C#
54 lines
1.9 KiB
C#
using SqlSugar;
|
|
|
|
namespace Microsoft.Extensions.DependencyInjection
|
|
{
|
|
/// <summary>
|
|
/// SqlSugar 拓展类
|
|
/// </summary>
|
|
public static class SqlSugarServiceCollectionExtensions
|
|
{
|
|
/// <summary>
|
|
/// 添加 SqlSugar 拓展
|
|
/// </summary>
|
|
/// <param name="services"></param>
|
|
/// <param name="config"></param>
|
|
/// <param name="buildAction"></param>
|
|
/// <returns></returns>
|
|
public static IServiceCollection AddSqlSugar(this IServiceCollection services, ConnectionConfig config, Action<ISqlSugarClient> buildAction = default)
|
|
{
|
|
return services.AddSqlSugar(new ConnectionConfig[] { config }, buildAction);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 添加 SqlSugar 拓展
|
|
/// </summary>
|
|
/// <param name="services"></param>
|
|
/// <param name="configs"></param>
|
|
/// <param name="buildAction"></param>
|
|
/// <returns></returns>
|
|
public static IServiceCollection AddSqlSugar(this IServiceCollection services, ConnectionConfig[] configs, Action<ISqlSugarClient> buildAction = default)
|
|
{
|
|
// 注册 SqlSugar 客户端
|
|
services.AddScoped<ISqlSugarClient>(u =>
|
|
{
|
|
var sqlSugarClient = new SqlSugarClient(configs.ToList());
|
|
buildAction?.Invoke(sqlSugarClient);
|
|
return sqlSugarClient;
|
|
});
|
|
services.AddScoped<ITenant>(u =>
|
|
{
|
|
var tenant = new SqlSugarClient(configs.ToList());
|
|
buildAction?.Invoke(tenant);
|
|
return tenant;
|
|
});
|
|
|
|
// 注册非泛型仓储
|
|
services.AddScoped<ISqlSugarRepository, SqlSugarRepository>();
|
|
|
|
// 注册 SqlSugar 仓储
|
|
services.AddScoped(typeof(ISqlSugarRepository<>), typeof(SqlSugarRepository<>));
|
|
|
|
return services;
|
|
}
|
|
}
|
|
} |