Строка подключения 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 в контроллер?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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