我对 EF 迁移如何处理我的存储库是通用的( IRepository<>)并由我选择的依赖注入工具在运行时注入的场景感到困惑。您知道数据库是由迁移使用三个元素更新/同步的:
- 数据库模型(对象上下文和 DbSet<> 属性)
- 迁移文件夹中的迁移类
- 已经存在的数据库(如果有的话)
您可以看到一个基本元素是对象上下文及其属性。如果您在没有 dbset 属性的情况下公开 Object 上下文,则 Migrations 使用的过程不会以正确的方式执行。
我有以下项目的解决方案:Core.Entities、Core.RepositoryInterfaces 和 Infraestructure.RepositoryEF、Infraestructure.DependencyResolution 和 UI.WebSite。
如您所知,当我需要存储库时,它们会被注入到类构造函数中:
private IRepository<Product> _productrepo;
Public Test(IRepository<Product> productRepo)
{
_productRepo = productrepo;
}
问题是:由于我的对象上下文没有 dbset<> 属性(我的依赖工具在运行时注入这些存储库),迁移如何更新数据库?
感谢您的宝贵帮助。