using AssetManager.Data.Repositories; using Microsoft.Extensions.DependencyInjection; using SqlSugar; namespace AssetManager.Data; public static class DatabaseExtensions { public static IServiceCollection AddDatabase(this IServiceCollection services) { // 使用 Scoped 注册,每个 HTTP 请求一个实例,避免并发冲突 // SqlSugarScope 内部会自动管理连接池 services.AddScoped(s => { return SqlSugarConfig.GetSqlSugarClient(); }); services.AddScoped(); // Repository 层 services.AddScoped(); services.AddScoped(); return services; } public static void InitializeDatabase(this IServiceProvider serviceProvider) { using var scope = serviceProvider.CreateScope(); var dbService = scope.ServiceProvider.GetRequiredService(); dbService.InitializeDatabase(); } }