Язык программирования C#9 и платформа .NET5
Шрифт:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.PropertyNamingPolicy = null;
options.JsonSerializerOptions.WriteIndented = true;
});
}
Добавьте
Startup.cs
перечисленные ниже операторы using
:
using AutoLot.Dal.EfStructures;
using AutoLot.Dal.Initialization;
using AutoLot.Dal.Repos;
using AutoLot.Dal.Repos.Interfaces;
using Microsoft.EntityFrameworkCore;
Службам API необходим доступ к
ApplicationDbContext
и хранилищам внутри уровня доступа к данным. Существует встроенная поддержка для добавления EF Core в приложения ASP.NET Core. Добавьте следующий код в метод ConfigureServices
класса Startup
:
var connectionString = Configuration.GetConnectionString("AutoLot");
services.AddDbContextPool<ApplicationDbContext>(
options => options.UseSqlServer(connectionString,
sqlOptions => sqlOptions.EnableRetryOnFailure));
Первая строка кода получает строку подключения из файла настроек (более подробно рассматривается позже). Следующая строка добавляет в контейнер DI пул экземпляров
ApplicationDbContext
. Во многом подобно пулу подключений пул ApplicationDbContext
может улучшить показатели производительности за счет наличия заранее установленных экземпляров, ожидающих потребления. Когда нужен контекст, он загружается из пула. По окончании его использования он очищается от любых следов применения и возвращается в пул. Теперь необходимо добавить хранилища в контейнер DI. Вставьте в метод
ConfigureServices
приведенный далее код после кода для конфигурирования ApplicationDbContext
:
services.AddScoped<ICarRepo, CarRepo>;
services.AddScoped<ICreditRiskRepo, CreditRiskRepo>;
services.AddScoped<ICustomerRepo, CustomerRepo>;
services.AddScoped<IMakeRepo, MakeRepo>;
services.AddScoped<IOrderRepo, OrderRepo>;
Добавление строки подключения к настройкам приложения
Модифицируйте файл
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
для веб-приложений MVC добавляет базовые службы для приложений API и поддержку визуализации представлений. Вместо вызова 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<ApplicationDbContext>(
options => options.UseSqlServer(connectionString,
sqlOptions => sqlOptions.EnableRetryOnFailure));
services.AddScoped<ICarRepo, CarRepo>;
services.AddScoped<ICreditRiskRepo, CreditRiskRepo>;
services.AddScoped<ICustomerRepo, CustomerRepo>;
Поделиться:
Популярные книги
Газлайтер. Том 10
10. История Телепата
Фантастика:
боевая фантастика
5.00
рейтинг книги
На границе империй. Том 7. Часть 2
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
Звездная Кровь. Изгой
1. Звездная Кровь. Изгой
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Хозяин Теней 4
4. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Картофельное счастье попаданки
Фантастика:
фэнтези
5.00
рейтинг книги
Экзорцист: Проклятый металл. Жнец. Мор. Осквернитель
Фантастика:
фэнтези
героическая фантастика
5.50
рейтинг книги
Доктора вызывали? или Трудовые будни попаданки
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Метатель
1. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Моя на одну ночь
Любовные романы:
современные любовные романы
короткие любовные романы
5.50
рейтинг книги
Чехов. Книга 2
2. Адвокат Чехов
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Хозяин Теней 2
2. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Сумеречный стрелок 7
7. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Жизнь под чужим солнцем
Детективы:
прочие детективы
9.10
рейтинг книги
Красноармеец
1. Красноармеец
Фантастика:
боевая фантастика
попаданцы
4.60