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

на главную

Жанры

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

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

Газлайтер. Том 5

Володин Григорий
5. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 5

Отмороженный 8.0

Гарцевич Евгений Александрович
8. Отмороженный
Фантастика:
постапокалипсис
рпг
аниме
5.00
рейтинг книги
Отмороженный 8.0

Наследник и новый Новосиб

Тарс Элиан
7. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник и новый Новосиб

Измена. Ребёнок от бывшего мужа

Стар Дана
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Ребёнок от бывшего мужа

В зоне особого внимания

Иванов Дмитрий
12. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
В зоне особого внимания

Невеста вне отбора

Самсонова Наталья
Любовные романы:
любовно-фантастические романы
7.33
рейтинг книги
Невеста вне отбора

Приручитель женщин-монстров. Том 1

Дорничев Дмитрий
1. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 1

Приручитель женщин-монстров. Том 6

Дорничев Дмитрий
6. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 6

Лорд Системы 8

Токсик Саша
8. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 8

Пограничная река. (Тетралогия)

Каменистый Артем
Пограничная река
Фантастика:
фэнтези
боевая фантастика
9.13
рейтинг книги
Пограничная река. (Тетралогия)

Свадьба по приказу, или Моя непокорная княжна

Чернованова Валерия Михайловна
Любовные романы:
любовно-фантастические романы
5.57
рейтинг книги
Свадьба по приказу, или Моя непокорная княжна

Ваше Сиятельство 8

Моури Эрли
8. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ваше Сиятельство 8

Все ведьмы – стервы, или Ректору больше (не) наливать

Цвик Катерина Александровна
1. Все ведьмы - стервы
Фантастика:
юмористическая фантастика
5.00
рейтинг книги
Все ведьмы – стервы, или Ректору больше (не) наливать

Уязвимость

Рам Янка
Любовные романы:
современные любовные романы
7.44
рейтинг книги
Уязвимость