1

Code First を使用している 2 つの異なる MVC ソリューション (Web アプリ) があります。これら両方のアプリのターゲットは同じデータベースです。2 つ目のアプリを開始したとき、データベースに変更を適用できないというエラーが最初に発生しました (変更が何であったか正確には覚えていません)。私はついにスクリプトを生成することができました

update-database -Script

データベースで実行したところ、うまくいきました。しかし、約 1 週間気づかなかったのは、コードを最初に使用し、同じデータベースと通信するが別のテーブルと通信する他のアプリが機能しなくなったことです。問題をデバッグするためにコンパイルしようとしたとき、次のようなエラーが表示されました 。バッキング コンテキストが変更されたため、これらの変更をデータベース (update-database) にプッシュする必要がありますが、 データベースを更新しようとすると、移行がないと言って失敗します。

私のアプリは両方とも、Visual Studio 2012 の .Net 4.0 を対象とする MVC3 アプリです。

この状況を修正する方法に関するヒントはありますか?

4

2 に答える 2

2

残念ながら、EF5 の移行はシングルテナントです。同じデータベースを使用する場合は、移行をオフにして、データベースがモデルと同期しているかどうかを確認するか、両方のアプリで同じモデルを使用する必要があります。これは EF6 で解決されました。これは、EF6 でのマルチテナント移行の仕様ですhttp://entityframework.codeplex.com/wikipage?title=Multi-tenant%20Migrations

于 2012-10-15T21:05:39.237 に答える
1

現在動作しているアプリのコード ファースト ロジックを共通のアセンブリにリファクタリングし、両方のプロジェクトから新しいアセンブリを参照できます。

于 2012-10-15T20:23:58.300 に答える