web-dev-qa-db-ja.com

Entity Frameworkデータ移行で使用するIDbContextFactoryを実装する方法

この投稿 で説明されているように、Entity Frameworkのデータ移行を使用しようとしています。

ただし、Enable-Migrationsステップを実行しようとすると、パッケージマネージャーコンソールで次のエラーが表示されます。

The target context 'MyDataContext' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory

そのため、IDbContextFactoryクラスを含むプロジェクトにDbContextを実装するファクトリクラスを作成しましたが、データの移行では認識されないようです。

このファクトリクラスを使用するようにデータ移行を指示するために明示的に行う必要があることはありますか?

43
Tim Coulter

また、接続文字列名を取得するためにコンテキストを記述したため、この問題が発生しました(そして、ninjectを使用してそれを提供しました)。

あなたが行ったプロセスは正しいようです、それが助けの場合、ここに私のクラス実装のスニペットがあります:

public class MigrationsContextFactory : IDbContextFactory<MyContext>
{
    public MyContext Create()
    {
        return new MyDBContext("connectionStringName");
    }
}

必要なのはこれだけです。

59
dougajmcdonald