Как работает 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
Ответить

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

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

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

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

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