0
私は類似のデータをほぼ保持する3つのモデルを持っています。今私は3つのモデルの特性を持つ新しいモデルを作りたいと思っています。私はそれをしました。しかし、私が直面している問題は、移行を適用すると3つのテーブルのデータが失われていることです。Entity Framework 6.1を使用してデータをコピーするモデルにモデルをマージする
データベースに移行を適用すると、3つのテーブルのデータを新しいテーブルにコピーします。 Seedメソッドは、すべての3つのテーブルが削除されるまでに移行を適用した後に実行されます。マイグレーションを適用する前に実行し、ある一時テーブルにデータを格納し、この一時テーブルのデータを新しいテーブルにプッシュし、一時テーブルを削除するいくつかのメソッドが必要です。
Entity Frameworkでこれを達成する方法はありますか、それとも明示的に処理する必要はありますか?
私のモデルクラスは次のとおりです。
public class Model1 {
public Guid Id {get;set;}
public int Count {get;set;}
public bool IsActive {get;set;}
public string Template {get;set;}
}
public class Model2 {
public Guid Id {get;set;}
public int Count {get;set;}
public string Template {get;set;}
}
public class Model3 {
public Guid Id {get;set;}
public int Count {get;set;}
public string Template {get;set;}
}
public class NewModel{
public Guid Id {get;set;}
public int Count {get;set;}
public string Template {get;set;}
public bool IsActive {get;set;}
public string Type {get;set; } // this will the type of all 3 old models
}
移行は、テーブルをドロップしません。オリジナルの3つのテーブル(追加マイグレーションInitial -IgnoreChanges)でベースライン・マイグレーションをセットアップし、そのマイグレーション(update-database)を適用してから、テーブルと新しいマイグレーションを追加する必要があります。次に、移行シードを使用してデータを移動できます。 –