伝統的に、私は常に手動で sql スクリプトを書いてきたので、それらはきれいでクリーン (私は生成されたスクリプトのファンではありません) であり、リリースごとにリリースされます。新しいインストール スクリプトと、新しいテーブル、既存のテーブルの変更など。これはすべて非常に標準的です。
最初に EF 4 コードをいじる時間はあまりありませんでしたが、実稼働環境で実際に実行可能であれば、それを使用することに非常に興味があります。
データベースが存在しない場合にデータベースが自動的に作成されるコードファーストのアプローチがあるとします。スキーマ/モデルが変更された新しいバージョンのソフトウェアをリリースするとどうなりますか。EF は、更新された EF モデルに一致するようにデータベース スキーマを更新するほどスマートですか?
シナリオ
- クライアントは、サーバーに asp.net MVC Web サイトをインストールします。最初の実行時に、新しいデータベースが作成されます
- クライアントがウェブサイトをしばらく使用すると、データベースにデータが入力されます
- 一方、Web サイトの新しいバージョンがリリースされ、EF モデルが変更されました
- クライアントは新しいバージョンをダウンロードし、Web サイトを展開し、既存のデータベースを参照します
コード ファーストは初期展開にのみ役立つのでしょうか、それとも既存のデータベース リリースをこのようにリリースするように更新するほどスマートでしょうか?