Строка подключения EF Core недоступна в контроллере.C#

Место общения программистов C#
Гость
Строка подключения EF Core недоступна в контроллере.

Сообщение Гость »


У меня есть приложение ASP.NET Core 7 с Entity Framework. Я создал минимальный пример, демонстрирующий проблему.

appsettings.Development.json (обратите внимание, что проблемы не существует, если строка подключения находится в appsettings.json):

{ "Строки подключения": { "DefaultConnection": "Источник данных=..." } } Program.cs

Построитель WebApplicationBuilder = WebApplication.CreateBuilder(args); // Добавляем сервисы в контейнер. builder.Services.AddControllers(); string connstr = builder.Configuration.GetConnectionString("DefaultConnection")!; builder.Services.AddDbContext(optionsBuilder => optionsBuilder.UseSqlServer(connstr)); ... connstr показывает строку подключения из appsettings.Development.json, как и ожидалось.

Контроллер

[Route("api/[controller]")] [Апиконтроллер] общедоступный класс CountryController: ControllerBase { частный MyContext только для чтения _db; общедоступный CountryController (MyContext db) { _дб = дб; } [HttpGet] public async Task Get() { Страны List = ждут _db.Countries.ToListAsync(); возвращающиеся страны; } ... } И когда я вызываю этот метод Get(), я получаю ошибку:

Свойство ConnectionString не инициализировано.

Не могу понять, как он потерялся из Program.cs в контроллер?

Вернуться в «C#»