继How do I inject a connection string into an instance of IDbContextFactory?以及几个基本相似的问题之后,我想知道IDbContextFactory<T>
对于实体框架迁移的重点是什么。
根据MSDN,IDbContextFactory<T>
完全是关于design-time support,这与Code-First Migrations似乎并不特别相关。
实现的任何工厂类必须自己实现默认构造函数(这是EF / Migrations使用的那个),并且必须实现通用的T Create()
方法。这似乎是一个重复的抽象,我看不到它增加了任何东西(也许这对于设计时方法来说是必要的。)
这意味着没有办法进行任何构造函数注入,这意味着我实际上无法真正使用它,因为各种参数(包括但不限于nameOrConnectionString
直到运行时才知道)。另请参阅Entity Framework 4.3.1 migrations always invokes default constructor and ignores connectionstring和Manually Provide DbContext to DbMigrator。一堆黑客。
特别是EF,IoC
和Dependency Injection
特别总是看起来像是一个想法,如果有的话。