Язык программирования 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.csusingusing AutoLot.Dal.EfStructures;using AutoLot.Dal.Initialization;using AutoLot.Dal.Repos;using AutoLot.Dal.Repos.Interfaces;using Microsoft.EntityFrameworkCore;Службам API необходим доступ к
ApplicationDbContextConfigureServices()Startupvar connectionString = Configuration.GetConnectionString("AutoLot");services.AddDbContextPool<ApplicationDbContext>( options => options.UseSqlServer(connectionString, sqlOptions => sqlOptions.EnableRetryOnFailure()));Первая строка кода получает строку подключения из файла настроек (более подробно рассматривается позже). Следующая строка добавляет в контейнер DI пул экземпляров
ApplicationDbContextApplicationDbContextТеперь необходимо добавить хранилища в контейнер DI. Вставьте в метод
ConfigureServices()ApplicationDbContextservices.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" }}Это предохраняет реальную строку подключения от системы управления версиями и делает возможным замену маркера (
ITSASECRETAutoLot.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()Startupvar connectionString = Configuration.GetConnectionString("AutoLot");services.AddDbContextPool<ApplicationDbContext>(