0

私は現在 Entity Framework を調べており、Code First の例を扱っています。これまでのところ、フレームワークがモデルの変更を簡単に処理できないことがわかります。クラス/テーブルに別のフィールドを追加したいときはいつでも、フレームワークはデータベース全体を削除し、最初から作成します。

(N)Hibernate で見たのと同様の動作。(ここは間違っているかもしれません、それはずっと前のことです)

チュートリアルに取り組んでいる限り、それは問題ありません。実際のプロジェクトが関係している場合、テーブルに新しいフィールドが必要になるたびにデータベースを削除する余裕はありません。

シナリオを想像してみてください。あなたは多くのクライアントとのプロジェクトに取り組んでいます。すべてのクライアントには独自のデータベースがあります。リリース 1.0.1 では、テーブルの 1 つに新しいフィールドを追加する必要があります。開発環境にデータベースをドロップしても、大したことではありません。(それでも、DB が削除されるたびにスクリプトを実行してテスト データを入力する必要がありますが、これでも実行できない場合があります)

しかし、この新しいバージョンをデプロイする必要がある場合はどうすればよいでしょうか? クライアントのデータベースを削除せずに更新する SQL スクリプトを作成しますか? その後、バイナリを展開しますか?

しかし、コードの変更とは別にデータベースの変更を行うよりも、これがどのように優れているのでしょうか?

4

1 に答える 1

3

(私の悪い英語でごめんなさい)

これこそまさに、Code First Migrations が存在する理由です。こちら (自動移行)こちら (コードベースの移行)をご覧ください。

于 2012-05-04T07:58:50.487 に答える