Чтение онлайн

на главную - закладки

Жанры

Язык программирования 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>;

Поделиться:
Популярные книги

Неучтенный. Дилогия

Муравьёв Константин Николаевич
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Неучтенный. Дилогия

Бракованная невеста. Академия драконов

Милославская Анастасия
Фантастика:
фэнтези
сказочная фантастика
5.00
рейтинг книги
Бракованная невеста. Академия драконов

Неудержимый. Книга XVIII

Боярский Андрей
18. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XVIII

Жена со скидкой, или Случайный брак

Ардова Алиса
Любовные романы:
любовно-фантастические романы
8.15
рейтинг книги
Жена со скидкой, или Случайный брак

Шаман. Похищенные

Калбазов Константин Георгиевич
1. Шаман
Фантастика:
боевая фантастика
попаданцы
6.44
рейтинг книги
Шаман. Похищенные

Совок

Агарев Вадим
1. Совок
Фантастика:
фэнтези
детективная фантастика
попаданцы
8.13
рейтинг книги
Совок

Убивать чтобы жить 3

Бор Жорж
3. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 3

Леди Малиновой пустоши

Шах Ольга
Любовные романы:
любовно-фантастические романы
6.20
рейтинг книги
Леди Малиновой пустоши

Разбуди меня

Рам Янка
7. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
остросюжетные любовные романы
5.00
рейтинг книги
Разбуди меня

Камень. Книга вторая

Минин Станислав
2. Камень
Фантастика:
фэнтези
8.52
рейтинг книги
Камень. Книга вторая

Ведьма Вильхельма

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
8.67
рейтинг книги
Ведьма Вильхельма

Герцог и я

Куин Джулия
1. Бриджертоны
Любовные романы:
исторические любовные романы
8.92
рейтинг книги
Герцог и я

Кодекс Охотника. Книга XVII

Винокуров Юрий
17. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVII

Плохая невеста

Шторм Елена
Любовные романы:
любовно-фантастические романы
7.71
рейтинг книги
Плохая невеста