最近、Visual Studio を 2010 から 2013 にアップグレードしました。EF 4 から生成されたコードと互換性のない EF 6.0 が付属しています。
モデル内のテーブルを DB スキーマの最新バージョンで更新する必要があります。その場合、テーブル定義の削除後の「更新」と「追加」の両方で、次のことを行います。
- モデルとは別のファイルにある場合でも、モデル内のすべての型に対して既に記述されているすべてのカスタム コードを削除します。
- 新しい EF 6.0 バインディングを生成します。
- (オプション) 新しいリポジトリを生成します。これは明らかに、リポジトリを再生成しただけで、カスタム コードには触れていない EF 4 と同じ動作ではありません。
NuGet は使用していませんが、プロジェクト内で EF ライブラリを参照しています。
VS 2013 は VS 2010 とは異なるバージョンのコード ジェネレーターを使用していると思います。どうすれば以前の動作に戻すことができますか?
更新: NuGet を使用して EF 4.3.1 をダウンロードし、更新モデルの手順を繰り返します (削除してから再作成します) が、まだ古い動作が見られます。VS 2013 EF Code Generator に問題があると思います。