
Я хочу, чтобы миграция и связанные с ней взаимодействия с БД были реализованы в 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