Язык программирования C#9 и платформа .NET5
Шрифт:
services.AddScoped<IMakeRepo, MakeRepo>;
services.AddScoped<IOrderRepo, OrderRepo>;
На заметку! Веб-приложение MVC будет работать как с уровнем доступа к данным, так и с API-интерфейсом для взаимодействия с данными, чтобы продемонстрировать оба механизма.
Добавление строки подключения к настройкам приложения
Модифицируйте файл
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;"
}
}
Метод Configure
Метод
Configure
применяется для настройки приложения на реагирование на запросы HTTP. Данный метод выполняется после метода ConfigureServices
, т.е. все, что добавлено в контейнер DI, также может быть внедрено в Configure
. Существуют различия в том, как приложения API и MVC конфигурируются для обработки запросов и ответов HTTP в конвейере. AutoLot.Api
Внутри стандартного шаблона выполняется проверка среды, и если она установлена в
Development
(среда разработки), тогда в конвейер обработки добавляется промежуточное ПО UseDeveloperExceptionPage
, предоставляющее отладочную информацию, которую вы вряд ли захотите отображать в производственной среде. Далее производится вызов UseHttpsRedirection
для перенаправления всего трафика на HTTPS (вместо HTTP). Затем добавляются вызовы арр.UseRouting
, арр.UseAuthorization
и арр.UseEndpoints
. Вот полный код метода:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment)
{
// Если среда разработки, тогда отображать отладочную информацию.
app.UseDeveloperExceptionPage;
// Первоначальный код.
app.UseSwagger;
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json",
"AutoLot.Api v1"));
}
// Перенаправить трафик HTTP на HTTPS.
app.UseHttpsRedirection;
//
Включить маршрутизацию.
app.UseRouting;
// Включить проверки авторизации.
app.UseAuthorization;
// Включить маршрутизацию с использованием конечных точек.
// Использовать для контроллеров маршрутизацию с помощью атрибутов.
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers;
});
}
Кроме того, когда приложение запускается в среде разработки, необходимо инициализировать базу данных. Добавьте в метод
Configure
параметр типа ApplicationDbContext
и вызовите метод InitializeData
из AutoLot.Dal
. Ниже показан модифицированный код:
public void Configure(
IApplicationBuilder app,
IWebHostEnvironment env,
ApplicationDbContext context)
{
if (env.IsDevelopment)
{
// Если среда разработки, тогда отображать отладочную информацию.
app.UseDeveloperExceptionPage;
// Инициализировать базу данных.
if (Configuration.GetValue<bool>("RebuildDataBase"))
{
SampleDataInitializer.InitializeData(context);
}
}
...
}
Обновите файл
appsettings.development.json
с учетом свойства RebuildDataBase
(пока что установив его в false
):
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"RebuildDataBase": false,
"ConnectionStrings": {
"AutoLot": "Server=db;Database=AutoLotPresentation;
User ID=sa;Password=P@ssw0rd;"
Поделиться:
Популярные книги
Неучтенный. Дилогия
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Бракованная невеста. Академия драконов
Фантастика:
фэнтези
сказочная фантастика
5.00
рейтинг книги
Неудержимый. Книга XVIII
18. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Жена со скидкой, или Случайный брак
Любовные романы:
любовно-фантастические романы
8.15
рейтинг книги
Шаман. Похищенные
1. Шаман
Фантастика:
боевая фантастика
попаданцы
6.44
рейтинг книги
Совок
1. Совок
Фантастика:
фэнтези
детективная фантастика
попаданцы
8.13
рейтинг книги
Убивать чтобы жить 3
3. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Леди Малиновой пустоши
Любовные романы:
любовно-фантастические романы
6.20
рейтинг книги
Разбуди меня
7. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
остросюжетные любовные романы
5.00
рейтинг книги
Камень. Книга вторая
2. Камень
Фантастика:
фэнтези
8.52
рейтинг книги
Ведьма Вильхельма
Любовные романы:
любовно-фантастические романы
8.67
рейтинг книги
Герцог и я
1. Бриджертоны
Любовные романы:
исторические любовные романы
8.92
рейтинг книги
Кодекс Охотника. Книга XVII
17. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Плохая невеста
Любовные романы:
любовно-фантастические романы
7.71