public static IWebHostBuilder UseMultiTenancy <TApplication>( this IWebHostBuilder masterWebHostBuilder, Action <IMultiTenancyBuilder <TApplication> > configurator ) where TApplication : class, IApplication { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } var builder = new MultiTenancyBuilder <TApplication>(masterWebHostBuilder); configurator(builder); masterWebHostBuilder.ConfigureServices( ( context, collection ) => { collection.AddSingleton <IMultiTenancyBuilder <TApplication> >(builder); collection.AddSingleton <ITenantPipelineBuilder, TenantPipelineBuilder <TApplication> >(); }); masterWebHostBuilder.UseStartup <MasterStartup>(); return(masterWebHostBuilder); }
/// <summary> /// Register an <see cref="SqlServerOnConfiguringDbContextOptionsBuilderProvider"/> provider and <see cref="TenantDbContextFactory{TContext,TTenant,TTenancy,TKey}"/> /// </summary> /// <param name="service"><see cref="MultiTenancyBuilder"/></param> /// <returns><see cref="MultiTenancyBuilder"/></returns> public static MultiTenancyBuilder UseSqlServer(this MultiTenancyBuilder service) { service.RegisterOnConfiguringProvider(typeof(SqlServerOnConfiguringDbContextOptionsBuilderProvider)); return(service.AddTenantFactory(typeof(TenantDbContextFactory <, , ,>))); }