2016-09-12 4 views
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 
} 
+0

移行は、テーブルをドロップしません。オリジナルの3つのテーブル(追加マイグレーションInitial -IgnoreChanges)でベースライン・マイグレーションをセットアップし、そのマイグレーション(update-database)を適用してから、テーブルと新しいマイグレーションを追加する必要があります。次に、移行シードを使用してデータを移動できます。 –

答えて

0

あなたは(「ECCに選ぶ」)は、SQLを使用して生成された移行を編集し、それを手動で行う必要があり、適切に構成されている場合

関連する問題