C# Свойство ConnectionString не было инициализированоC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 C# Свойство ConnectionString не было инициализировано

Сообщение Anonymous »

Я пытался создать миграцию, а затем обновить базу данных (используя инструменты EF Core и SSMS для проверки базы данных). Мне было трудно, потому что у меня разные проекты. Организация моего решения следующая:
Изображение

Я хочу, чтобы миграция и связанные с ней взаимодействия с БД были реализованы в VSC.Repo. Это означает, что контекст находится в этом проекте. Кроме того, у меня есть строка подключения в настройках приложения по умолчанию, которая находится в VSC.API (другая сборка). Я пробовал различные способы получить оттуда строку подключения, но всегда получаю следующую ошибку при запуске «обновления базы данных dotnet ef» в проекте VSC.Repo:
Изображение

Это мое класс контекста:
public class DataContext : DbContext
{

private readonly string connectionString;

public DataContext()
{
}

public DataContext(DbContextOptions options, IConfiguration configuration) : base(options)
{
connectionString = configuration.GetSection("ConnectionStrings:DefaultConnection").Value;
}

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(connectionString);
}

Не могу понять, что делаю не так. Буду очень признателен за любую помощь.
РЕДАКТИРОВАТЬ: с жестко закодированной строкой все работает отлично, но это плохая практика, и я не хочу реализовывать ее таким образом.appsettings.json:
"ConnectionStrings": {
"DefaultConnection": "server=localhost;database=vscDatabase;trusted_connection=true;TrustServerCertificate=True;"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"

program.cs:
WebApplicationBuilder? builder =
WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllers();

var connectionString =
builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext(options =>
options.UseSqlServer(connectionString));
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
//builder.AddRepoConfigurations();

var app = builder.Build();


Подробнее здесь: https://stackoverflow.com/questions/750 ... nitialized
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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