是否可以向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
}
}
或者更一般的方法是,以获得可能将代码注入甚至内部迁移:
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(...);
}
}
哪里是DI初始化发生在实体框架6定义那些绑定?
UPDATE
我不是问我应该使用什么。目前,我使用Ninject,但这是不可能的,因为无论我使用什么,我都应该能够将依赖性注入到迁移的构造函数中。如果你写的东西像我在上面的例子中写的那样,它会引发你关于“没有默认构造函数”的异常。
以上例子中的ILogger只是简单的依赖例子。如果你有IGeneratorService会产生一些数据,并且你想使用这个服务为Seed方法产生数据,事情会变得更糟。
DI初始化应该由您的DI框架来处理。 –
这个问题的任何部分如何回答这个问题? – eocron
您是否尝试过使用任何DI框架? – ColinM