Entity Framework 6のConfigurationクラスに依存関係を挿入することは可能ですか?このような例Entity Frameworkのシードメソッドへの依存性注入?
:DI初期ある
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(...);
}
}
を定義するエンティティフレームワーク6で起こる:
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
}
}
以上の一般的なアプローチは、コードも内部移行を注入する可能性を得ることですそれらの束縛?
UPDATE
イムではない、私が使うべきかについて尋ねます。現在、私はNinjectを使用していますが、それは問題ではありません。何を使用していても、移行のコンストラクタに依存関係を注入できるはずです。もし私が上記の例で書いたようなものを書いているのであれば、 "デフォルトのコンストラクタはありません"という例外がスローされます。
上記のILoggerは、依存関係の単なる単なる例です。いくつかのデータを生成するIGeneratorServiceがあり、このメソッドを使用してSeedメソッドのデータを生成したい場合は、状況が悪化します。
DI初期化は、DIフレームワークで処理する必要があります。 –
この質問のどの部分に対してもこの回答はどのようにして返されますか? – eocron
DIフレームワークを使ってみましたか? – ColinM