是否可以向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