Вы бы создали файл appsettings.json
, в котором было бы объявлено одно или несколько соединений.
{
"ConnectionStrings": {
dbExampleSystemConnection: "...",
dbSampleSystemConnection: "..."
}
}
После того, как вы определили свое соединение в appsettings.json
, вам нужно будет создать конфигурацию итакже настройте Entity Framework внутри коллекции сервисов для построения вашего провайдера услуг.Чтобы добавить appsettings.json
, вам нужно сделать следующее:
public static IConfiguration BuildConfigurationProvider() => new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", false, true)
.Build();
Затем вам нужно создать вашу Service Collection, я немного расширил свою, но по сути вам нужно следующее:
public class ApplicationProvider
{
public ApplicationProvider() => Configuration = ApplicationConfigurationProvider.BuildConfigurationProvider();
public void StartApplication()
{
var serviceCollection = new ServiceCollection().AddSingleton(configuration => Configuration);
var serviceProvider = ApplicationServiceProvider.BuildServiceProvider(serviceCollection);
...
}
}
Итак, вы определили и добавили конфигурацию, чтобы у вас был доступ к вашей встроенной конфигурации.Однако для того, чтобы вы могли определить глобально, вам нужно сделать следующее в вашей Коллекции сервисов:
services.AddDbContext<BloggingContext>(options => options.UseSqlite(Configuration.GetConnectionString("dbSampleSystemConnection"));
В моем консольном приложении я создал ряд провайдеров, но вы должны иметь большую часть этого определения вваш проект Web Api уже.Мое консольное приложение использует контейнер DI по умолчанию для Core.