10

最近、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 に問題があると思います。

4

1 に答える 1

16

私にとっては、次の解決策が機能しました。

edmx ファイルをダブルクリックして、そのプロパティ ウィンドウを開きます。Code Generation StrategyからT4に変更しLegacy Object Contextます。ソリューションを構築します。関数とプロパティを再宣言したため、何千ものエラーが発生する可能性があるため、以前に存在しなかったすべてのファイルを削除してください。

edmx プロパティ ウィンドウ

于 2013-12-09T16:39:39.007 に答える