2

DbContext API でエンティティ フレームワーク 4.1 を使用するアプリケーションがあります。アプリケーションには、異なるデータベースとテーブルへの複数の DbContextsマッピングがあります。今週は、起動時間を節約するために、ビュー生成用の Code first T4 テンプレートを使用して DbContext のビューを事前に生成しました。その時点で、次の例外が発生しました。

「EntityContainer 'CodeFirstContainer' のマッピングおよびメタデータ情報は、事前生成されたビューの作成に使用された情報と一致しなくなりました。」

1 つまたは複数の DbContext のビューを生成したかどうかにかかわらず、その例外が発生します。

複数の DbContext のビューを事前に生成し、アプリケーションを動作させるにはどうすればよいですか?

メッセージ内の疑わしい 'CodeFirstContainer' を調べて、次のような Pre-Generated ビュー コンストラクターの両方にあることを発見しました。

public ViewsForBaseEntitySetsCE5A4DE7E067A5879A835C5C494F186A390ADC2D26E82631FDC17C61E7E3D076
{
    this.EdmEntityContainerName = "CodeFirstContainer";
    this.StoreEntityContainerName = "CodeFirstDatabase";
    this.HashOverMappingClosure = "198099ba4b299a8dc37402a5c4c65096d216c3ca5f3c1e6c796d33e723483d74";
    this.HashOverAllExtentViews = "85be433ad451c345f4d8e92827653fd9203be3008dd387745798f939514a0b2f";
    this.ViewCount = 14;
}

両方のビュー コンストラクターの唯一の違いは、最後の 3 つのプロパティです。

または、両方の DbContext に CodeFirstContainer を使用しないように EF に指示する方法を誰かが知っている場合は、生成ビューまたは DbContext を自分で変更して、機能させることができます...これがハッシュに含まれていない限り。

4

0 に答える 0