2012-03-14 25 views
1

プロジェクトに複数の移行があり、移行ごとに複数の列が追加されます。 移行のたびに、既存の他の列に基づいてデータを列に入力したいとします。 私はチームで働き、それぞれにテストデータのあるローカルデータベースを持っています。Entity Framework 4.3データ移行 - 単一のシードメソッド?

現在、構成クラスには1つのシードメソッドがあります。

1回のマイグレーションで列を追加すると、シードメソッドでデータを追加することはできますが、複数のマイグレーションで1つずつ列を追加すると、最新のマイグレーションに一致するようにシードメソッドを更新しない限り動作しません。

なぜ彼らはDbMigrationクラスで必要なときにオーバーライドする人々のための仮想または抽象種子法を含んでいませんでしたか?それははるかに良い方法のように思えるでしょうか?事前

答えて

3

おかげで、あなたのマイグレーションクラスでUp方法で直接データをシードすることができますので。ただ、呼び出し:移行構成で

Sql("INSERT INTO ... "); 
Sql("UPDATE ... "); 

Seed方法は、データベースの作成時に初期データベースの播種に適していますが、全体のエンティティを追加または更新する必要がある場合、それはまた、今後、種子のために使用することができます - だけではなく、列を初期化します。

+0

私はそのことについて考えていなかったが、新しい値は少し複雑で、テーブル内の既存のデータに基づいているので、私は本当に、本当に、コンテキストを使用できるようにしたいと思います。 おそらく、ModelDataContextクラスを内部で使用することは可能です。私はそれがうまくいくことを願って、小さいベビーシールを殺しません。 – Moulde

+0

移行でコンテキストを使用することはできないと思います。 –

+0

実際には私が望んでいた答えはありませんでしたが、これは私が得る最も近いと思います:)そして、私は移行クラスからsqlを実行できるかどうか分かりませんでした。ありがとう – Moulde

関連する問題