using Microsoft.EntityFrameworkCore;
Службам API необходим доступ к ApplicationDbContext
ConfigureServices() класса Startup:var connectionString = Configuration.GetConnectionString("AutoLot");
services.AddDbContextPool
options => options.UseSqlServer(connectionString,
sqlOptions => sqlOptions.EnableRetryOnFailure()));
Первая строка кода получает строку подключения из файла настроек (более подробно рассматривается позже). Следующая строка добавляет в контейнер DI пул экземпляров ApplicationDbContext
ApplicationDbContext может улучшить показатели производительности за счет наличия заранее установленных экземпляров, ожидающих потребления. Когда нужен контекст, он загружается из пула. По окончании его использования он очищается от любых следов применения и возвращается в пул.Теперь необходимо добавить хранилища в контейнер DI. Вставьте в метод ConfigureServices()
ApplicationDbContext:services.AddScoped
services.AddScoped
services.AddScoped
services.AddScoped
services.AddScoped
Добавление строки подключения к настройкам приложения
Модифицируйте файл appsettings.development.json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"ConnectionStrings": {
"AutoLot": "Server=.,5433;Database=AutoLotFinal;
User ID=sa;Password=P@ssw0rd;"
}
}
Как обсуждалось ранее, каждый конфигурационный файл именуется согласно среде, что позволяет разносить значения, специфичные к среде, по разным файлам. Добавьте в проект новый файл по имени appsettings.production.json
{
"ConnectionStrings": {
"AutoLot": "ITSASECRET"
}
}
Это предохраняет реальную строку подключения от системы управления версиями и делает возможным замену маркера (ITSASECRET
AutoLot.Mvc
Метод ConfigureServices()
AddControllers() в приложениях MVC вызывается AddControllersWithViews():public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
}
Добавьте в файл Startup.es показанные ниже операторы using:
using AutoLot.Dal.EfStructures;
using AutoLot.Dal.Initialization;
using AutoLot.Dal.Repos;
using AutoLot.Dal.Repos.Interfaces;
using Microsoft.EntityFrameworkCore;
Веб-приложение также должно использовать уровень доступа к данным. Добавьте в метод ConfigureServices()
Startup следующий код:var connectionString = Configuration.GetConnectionString("AutoLot");
services.AddDbContextPool
options => options.UseSqlServer(connectionString,
sqlOptions => sqlOptions.EnableRetryOnFailure()));
services.AddScoped
services.AddScoped
services.AddScoped
services.AddScoped
services.AddScoped
На заметку!
Веб-приложение MVC будет работать как с уровнем доступа к данным, так и с API-интерфейсом для взаимодействия с данными, чтобы продемонстрировать оба механизма.Добавление строки подключения к настройкам приложения