1

私は Entity Framework 5 RC を使用しています。最初にコードを記述します。異なるバージョンのコードで作成されたデータベースの移行に苦労しています。たとえば、テーブル FooBar が存在しないときにデータベース A が作成されたとします。データベース B は、テーブル FooBar がモデルに追加された後に作成されました。

FooBar テーブルを追加する移行を作成しました。CreateTable を呼び出す前にテーブルが存在しないことを FooBar の移行で確認するのは私の責任ですか? データベース B には FooBar 移行のエントリがなく、それを実行しようとするため、そのようです。

最初は、MigrationHistory テーブルを使用するとこれらのチェックを追加しなくても済むように思えましたが、新しいデータベースには、データベースが作成される前に追加された移行のエントリがないため、自分でチェックを行う必要があります。それは正しい方法ですか、それとも何か不足していますか?

4

1 に答える 1

0

ストアド プロシージャの追加で発生した問題を回避するために、ストアド プロシージャ スクリプトの実行後に "_MigrationHistory" テーブルから新しいエントリを受け取る新しいテーブル "_ PreviousMigrationHistory"を作成する TSQL スクリプトを作成しました...

コード内で比較に使用する新しい列を両方のテーブル (「VersionId」、INT - IDENTITY(1,1) ) に追加しました。

このようにして、Code First Migrations が発生した後でも、更新されていない移行パターンを利用できます (__PreviousMigrationHistory)。

これは役に立ちますか?

**編集 - 申し訳ありませんが、質問を読み逃しました。- データベースの新しいインスタンスは引き続き移行手順を実行すると思いますが、__MigrationHistory テーブルにエントリを追加する必要があるのはどれですか?

于 2013-10-11T14:27:43.780 に答える