using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.AspNetCore.Builder; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Configuration; using HuanMeng.DotNetCore.MultiTenant; using HuanMeng.MiaoYu.Model.DbSqlServer.Db_MiaoYu; using Microsoft.EntityFrameworkCore; using HuanMeng.DotNetCore.MultiTenant.Contract; namespace HuanMeng.MiaoYu.Code.MultiTenantUtil { /// /// 多租户扩展 /// public static class MiaoYuMultiTenantExtension { /// /// 多租户IServiceCollection扩展 /// /// public static void AddMultiTenantMiaoYu(this IHostApplicationBuilder builder) { //初始学生数据库 string MiaoYu_SqlServer_Db = builder.Configuration.GetConnectionString("MiaoYu_SqlServer_Db") ?? ""; MiaoYuMultiTenantConfig miaoYuMultiTenantConfig = new MiaoYuMultiTenantConfig(MiaoYu_SqlServer_Db); builder.Services.AddSingleton(miaoYuMultiTenantConfig); //添加单个租户的配置项 builder.Services.AddScoped(); //添加系统数据库 builder.Services.AddDbContext((serviceProvider, options) => { var m = serviceProvider.GetRequiredService(); string sunnySportConnectionString = ""; if (m != null) { sunnySportConnectionString = m.ConnectionString ?? MiaoYu_SqlServer_Db; } if (string.IsNullOrEmpty(sunnySportConnectionString)) { sunnySportConnectionString = MiaoYu_SqlServer_Db; } options .UseSqlServer(sunnySportConnectionString); // //options.UseSqlServer }, ServiceLifetime.Scoped); } /// /// 多租户IApplicationBuilder扩展 /// /// /// public static IApplicationBuilder UseMultiTenantMiaoYu(this IApplicationBuilder app) { return app.UseMiddleware(); } } }