Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers()
<b> .AddJsonOptions(options =></b>
<b> {</b>
<b> options.JsonSerializerOptions.PropertyNamingPolicy = null;</b>
<b> options.JsonSerializerOptions.WriteIndented = true;</b>
<b> });</b>
}
Добавьте в файл
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
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"
}
},
<b> "ConnectionStrings": {</b>
<b> "AutoLot": "Server=.,5433;Database=AutoLotFinal;</b>
<b> User ID=sa;Password=P@ssw0rd;"</b>
<b> }</b>
}
Как обсуждалось ранее, каждый конфигурационный файл именуется согласно среде, что позволяет разносить значения, специфичные к среде, по разным файлам. Добавьте в проект новый файл по имени
appsettings.production.json
{
"ConnectionStrings": {
"AutoLot": "ITSASECRET"
}
}
Это предохраняет реальную строку подключения от системы управления версиями и делает возможным замену маркера (
ITSASECRET
AutoLot.Mvc
Метод
ConfigureServices()
AddControllers()
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>(