安全な方法でEDMXを更新する:
お気づきのとおり、データベースからの更新によって、既存のプロパティが常に正しく変更されるとは限りません。
EDMXアップデートの日常的な使用(24か月にわたる数百のアップデート)から、EDMXをアップデートするために次のシーケンスをお勧めします。
既存のモデルを削除してから更新します。
- EDMXデザイナーを開きます
- Ctrl-Aですべてを選択
- デザイナのすべてのモデルを削除するには、キーを削除します
- 重要:ソース管理にTFSを使用している場合は、この時点でEDMXを保存しないでください!*
- 次に、右クリックして[データベースからモデルを更新]を選択し、モデル全体を再作成します。
- プロジェクトを再構築して変更を伝達する
これにより、モデルに対して行った手動の微調整は明らかに失われますが、可能であれば手動の微調整は避けてください。これにより、プロセス全体をいつでも再現可能になります(これは良いことです)。
重要な注意事項:
- Visual Studioで自動保存をオンにしている場合は、すべてを自動保存しないように、更新をすばやく選択する必要があります(上記の手順5)。
- ソース管理にTFSを使用していて、EDMXを空にした後で保存した場合、TFSは生成されたすべてのファイルを「削除済み」としてマークし、EDMXを再度更新すると、ソース管理されていないファイルが切断される可能性があります。。
- このプロセスでは、ストアドプロシージャは更新されません。さらに、EDMXを更新しても、リターンタイプのみが変更されたストアドプロシージャは更新されないことがわかりました(EF 6.1.1の時点でまだ最新です)。
追加の推奨事項:
EDMXを別のライブラリに保管してください。これは、TTファイルや部分クラスを追加するのに最適な場所にもなります(たとえば、EDMXモデルの機能を拡張するため)。また、データベースコンテキストの拡張メソッドをこのライブラリに配置します。migration
ファイルもライブラリで生成され、すべてが適切に含まれています。
2015年4月更新
Visual Studio 2013の最新のリリース4は、TFSの多くの問題を解決したようです。Visual Studioのチェックアウトで生成されたファイルが表示され、変更されていない場合は元に戻します。上記の手順は、依然として最も安全なアプローチのようです。
2015年9月の更新
最新のVS2013リリース5を使用すると、EDMXの更新中に保存が発生した場合でも問題が発生します。保留中の削除により、更新中にtt
ファイルがソース管理から削除される状態になる可能性があります。秘訣は、ステップ4と5の間で高速に更新することです。:)