Code Firstは、大規模なアプリケーションには適していません。大規模なアプリ開発のターンアラウンドは非常に巨大です。
通常、ビジネスアプリのライフサイクルは次のようになります。
- バージョン1は生産中です
- バージョン2はベータ版です
- バージョン3は開発中です
- バージョン4は計画中です。
また、他のクロスアプリケーション通信ブリッジ、スケジュールされたタスク、サードパーティの統合、モバイルなどのさまざまな通信デバイス用のWebサービスがあります。
最終的にCode FirstはEntity ModelのObjectContextを使用します。古いEFはEDMXを生成し、EntityContextでObjectContextを使用すれば、すべてに十分です。テキストテンプレートを簡単にカスタマイズして、コードを生成できます。ObjectContextの実装では、変更の検出方法は遅くなりますが、EFチームは、プロキシを生成する代わりに、最初にコードを再発明する代わりに、変更の検出速度を簡単に改善できました。
自動移行
自動移行は理論的には良いように思えますが、実際に運用を開始すると実際には不可能です。プロトタイピングに適しているだけで、簡単なデモを作成できます。
Code First Migrationは、このようなシステムにはまったく適していません。バージョン1とバージョン2は、おそらく同じデータベースと通信します。バージョン3とバージョン4は通常ステージングであり、異なるデータベースがあります。
最初のデータベース
Database Firstは実用的なアプローチであり、SQLスクリプトの比較、視覚化、保守が簡単です。DBAは簡単に作業できます。
テキストテンプレート
独自のテキストテンプレートを作成して、パフォーマンスの問題に対処するカスタム実装をほとんど行わずに、EDMXとObjectContextをクエリおよび作成しました。問題なく同じデータベースと通信する複数のバージョンを持つ複数のアプリケーションがあります。
私にとって、.ttファイルを右クリックして[カスタムツールの実行]をクリックするのは、はるかに速くて簡単なステップであり、クラスの作成、モデルの構成および作成を行います。