メインの MVC3 Web アプリケーションに含めるモジュールを作成しました。モジュールは NuGet パッケージにパッケージ化されており、NuGet を介してインストールおよびアンインストールできます。メイン サイトとモジュールの両方で Code First を使用し、EF >= 4.3
パッケージを作成するには、別の MVC3 サイトがあり、すべての機能が領域内にあるため、パッケージを作成するには、ライブラリ、ビュー、および必要なすべてのファイルをパックするだけです。データベースの移行はプロジェクトで正常に機能し、パッケージは適切に作成されます。
ここで、NuGet を介してメイン サイトにパッケージをインストールします。このサイトは別のソリューションにあり、ソリューションには 2 つのプロジェクトがあります。
- MyProject.Web.UI: これは Mvc3 プロジェクトです
- MyProject.EntityFramework: これは、すべてのモデル、MyProject の dbContext を含むクラス ライブラリです...
パッケージが正しくインストールされ、エリア、エリア ビュー、およびライブラリが正しくインストールされます。
問題は、データベースをどのように更新するかです。最初に「Update-Database」を実行しようとしましたが、次のメッセージが表示されます。
「アセンブリ 'MyProject.Web.UI' に移行構成タイプが見つかりませんでした。(Visual Studio では、パッケージ マネージャー コンソールから Enable-Migrations コマンドを使用して、移行構成を追加できます)。」
次に、「Enable-Migrations」で移行を有効にしようとしましたが、次のメッセージが表示されました。
「アセンブリ 'MyProject.Web.UI' にコンテキスト タイプが見つかりませんでした。」
また、サイトを実行して、変更が自動的に適用されるかどうかを確認しようとしましたが、典型的なメッセージを含む例外ページが表示されます。
「データベースが作成されてから、'NugetPackageDbContext' コンテキストをサポートするモデルが変更されました。Code First Migrations を使用してデータベースを更新することを検討してください」
NuGet パッケージに含まれる移行で必要な変更をデータベースに反映させるために何をすればよいかわかりません。この問題に光を当てることができる人はいますか?私は移行にまったく慣れていません。コンソールでコマンドを実行する代わりに、変更があった場合にデータベースを更新するための構成がいくつかあるかもしれません。少し迷っています。
前もって感謝します :)