Меня смущает то, как EF Migrations обрабатывает сценарии, в которых мои репозитории являются универсальными (IRepository‹>) и внедряются во время выполнения с помощью выбранного мной инструмента инжектора зависимостей. Вы знаете, что база данных обновляется/синхронизируется миграциями с использованием трех элементов:
- Модель базы данных (контекст объекта и свойства DbSet‹>)
- Классы миграции внутри папки Migration
- Уже существующая база данных (если есть)
Вы можете видеть, что фундаментальным элементом является контекст объекта и его свойства. Если вы предоставляете контекст объекта без свойств dbset, процесс, используемый миграцией, выполняется неправильно.
У меня есть решение со следующими проектами: Core.Entities, Core.RepositoryInterfaces и Infraestructure.RepositoryEF, Infraestructure.DependencyResolution и UI.WebSite.
Как вы знаете, репозитории вводятся в конструктор класса, когда они мне нужны:
private IRepository<Product> _productrepo;
Public Test(IRepository<Product> productRepo)
{
_productRepo = productrepo;
}
Возникает вопрос: как миграция может обновить базу данных, поскольку контекст моего объекта не имеет свойств dbset‹> (мой инструмент зависимостей внедряет эти репозитории во время выполнения)?
Спасибо за вашу ценную помощь.