Я использую Blazor WebAssembly на стороне клиента ASP. NET Ядро размещено, и мне нужно использовать несколько баз данных во время выполнения. Я имею в виду, что его можно переключать между базами данных. У меня есть база данных SQLServer и база данных SQLite. Он всегда будет использоваться, но его можно переключить во время выполнения.
Я сделал это в Startup.cs
в проекте Blazor.Server:
public void ConfigureServices(IServiceCollection services)
{
....
services
.AddDbContext<SQLServerDbContext>(options =>
options.UseSqlServer(_configuration["ConnectionStrings:SQLServerConnection"]))
.AddDbContext<SQLiteTestDbContext>(options =>
options.UseSqlite(_configuration["ConnectionStrings:SQLiteTestConnection"]))
.AddScoped<DbContextResolver>()
.AddScoped<IDbContext>(p =>
{
var resolver = p.GetRequiredService<DbContextResolver>();
if (!resolver.IsTest)
{
return p.GetRequiredService<SQLiteTestDbContext>();
}
return p.GetRequiredService<SQLServerDbContext>();
});
...
}
Как я могу изменить использование DbContext во время выполнения?