web-dev-qa-db-ja.com

クラスライブラリでEntity Frameworkの移行を有効にできません

私はEF 5に乗り込み、彼らのコードファースト移行ツールを使用していますが、移行を有効にしようとするとエラーが発生するようです。

私はタイプする Enable-Migrationsをパッケージマネージャーコンソールに入力すると、

現在のプロジェクトにDbContextに由来するクラスが見つかりません。
生成された構成クラスを編集して、移行を有効にするコンテキストを指定します。
プロジェクトMyApp.MvcUIで有効なCode First Migrations。

次に、MvcUIプロジェクトにMigrationsフォルダーとConfigurationクラスを作成します。つまり、私のDbContextはMyApp.Domainというクラスライブラリプロジェクトに住んでいます。そのプロジェクトですべてを行う必要があり、DbContextを見つけるのに問題はないはずです。

43
Chev

ああ、すごい。私はダムです。

Nugetパッケージマネージャーコンソールには、上部に「Default Project:」というラベルの付いたドロップダウンメニューがあります。コマンドを実行したいプロジェクトに必ず設定してください。

うまくいけば、他の誰かが私の恥ずかしい間違いを避けるのに役立ちます。

106
Chev

Nugetコマンドを特定のプロジェクトで実行するには、実際には3つの方法があります。

  1. [パッケージマネージャーコンソール]コンソールツールウィンドウの上部にあるドロップダウンでアクティブなプロジェクトを設定します
  2. [Package Manager Console]プロジェクトを指定するパラメーターを探します。私が見たいくつかのコマンドレットでは-ProjectNameを使用し、いくつかは-Projectを使用します
  3. [ソリューションエクスプローラー]目的のプロジェクトを右クリックし、グラフィカルパッケージマネージャーウィンドウ(NuGetパッケージの管理...)を使用します。
11
Jimmy