是否可以将依赖项注入Entity Framework 6的Configuration类?
例如,像这样:
internal sealed class Configuration : DbMigrationsConfiguration<MyBaseContext>
{
private readonly ILogger _logger;
public Configuration(ILogger logger)
{
this._logger = logger;
AutomaticMigrationsEnabled = true;
}
protected override void Seed(Home.DAL.Data.HomeBaseContext context)
{
//log something
}
}
Run Code Online (Sandbox Code Playgroud)
或者更通用的方法是获得在迁移内部注入代码的可能性:
public partial class InitialMigration : DbMigration
{
private readonly ILogger _logger;
public InitialMigration(ILogger logger)
{
this._logger = logger;
}
public override void Up()
{
CreateTable(...);
}
public override void Down()
{
DropTable(...);
}
}
Run Code Online (Sandbox Code Playgroud)
DI初始化在Entity Framework 6中发生了什么来定义那些绑定?
UPDATE
我不是在问我应该用什么.目前,我使用Ninject,但这是不可能的,因为无论我使用什么,我应该能够将依赖注入迁移的构造函数.如果你写的东西就像我在上面的例子中所写的那样,那么你只会抛出"无默认构造函数"的异常.
以上示例中的ILogger只是依赖的简单示例.如果您有IGeneratorService会生成一些数据并且您希望使用此服务为Seed方法生成数据,情况会变得更糟.
我正在玩Entity框架和持续构建.到目前为止,通过使用migrate.exe和相应的参数,我可以毫无问题地运行迁移或一系列迁移.
但是,在尝试使用migrate.exe来启动脚本而不是执行迁移时遇到了麻烦,就像我通过运行一样
update-database -TargetMigration TestMigration -script
Run Code Online (Sandbox Code Playgroud)
从Visual Studio中的程序包管理器控制台中.
目前有办法做到这一点吗?
谢谢.