У меня есть 3 модели, которые почти содержат аналогичные данные. Теперь я хочу создать новую модель со свойствами из трех моделей. Я это сделал. Но проблема, с которой я столкнулась, заключается в том, что я теряю данные в трех таблицах, когда применяю миграцию.Объединение моделей в один с копированием данных с использованием Entity Framework 6.1
Я хочу скопировать данные из трех таблиц в новую таблицу, когда применяю миграцию к базе данных. Метод семян запускается после применения миграции, к тому времени все 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 таблицами (add-migration Initial -IgnoreChanges), применить эту миграцию (update-database), затем добавить таблицу и новую миграцию. Затем вы можете просто использовать семя переноса для перемещения данных. –