2012-07-09 10 views
42

this postで説明されているように、Entity Frameworkのデータ移行を使用しようとしています。Entity Frameworkデータ移行で使用するIDbContextFactoryを実装する方法

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

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

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

データマイグレーションにこのファクトリクラスを使用するよう指示するために明示的に行うべきことはありますか?

答えて

58

私は接続文字列名を取るためにコンテキストを書いたので、この問題も発生しました(そして、それを提供するためにninjectを使いました)。あなたが経てきた

プロセスが正しいようだ、それは任意の助けだ場合は、ここに私のクラスの実装の抜粋です:

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

あなたが必要とするすべてする必要があること。

+0

あなたの答えをありがとう - それは動作します。私はまったく同じパターンを自分で実装したことを思い出して、私が最初に間違ったことを想像することはできません。いずれにせよ、問題は解決されました。ありがとう。 –

+0

パーフェクト、喜んで助けました:) – dougajmcdonald

+2

あなたはこのクラスをどこに入れましたか? –

関連する問題