Как работает IDesignTimeDbContextFactory?C#

Место общения программистов C#
Гость
Как работает IDesignTimeDbContextFactory?

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

У меня есть проект .NET с многоуровневой архитектурой.
Мое решение включает в себя: Поскольку мой DbContext (

Код: Выделить всё

AppDbContext
) находится в отдельном проекте (

Код: Выделить всё

DataAccess
), я создал DbContextFactory, чтобы включить такие инструменты EF Core, как Add-Migration и Update-Database.
Моя AppContextFactory выглядит следующим образом:

Код: Выделить всё

public class AppContextFactory : IDesignTimeDbContextFactory
{
public AppDbContext CreateDbContext(string[] args)
{
var optionsBuilder = new DbContextOptionsBuilder();
optionsBuilder.UseSqlServer("Server=localhost\\SQLEXPRESS;Database=CreditApplicationDb;Trusted_Connection=True");

return new AppDbContext(optionsBuilder.Options);
}
}
Он работает нормально, но я знаю, что жесткое кодирование строки подключения — плохая практика.
Поскольку фабрика находится в Project.DataAccess, у нее нет доступа к appsettings.json, который находится в Project.API.
Хотя это работает, у меня есть несколько вопросов:
  • Правильный ли это подход для многоуровневой архитектуры с использованием EF Core?
  • Каков рекомендуемый способ безопасной загрузки строки подключения из файла конфигурации в этой настройке?
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/797 ... ctory-work

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