V prvním případě je předpokládám ještě FK na Course (odkaz na TeacherId), zatímco po změně se mění vztah a FK bude na Teacher a bude odkazovat na Course. Kdybych nechtěl přijít o data a měl manuální migrace, udělal bych to na více kroků. Je to sice trochu obskurní, vyžaduje to trochu synchronizaci a vždy záleží na scénáři ale obvykle je to bezpečné řešení. 1/ vytvoření nových entit (které nebudou použité) s nekonvenčními názvy (Person == PersonXX) a MIGRACE + UPDATE DB
class Person
{
public int Id {get;set;}
public string Name {get;set;}
}
class Course
{
public int Id {get;set;}
public Person Teacher {get;set;}
public ICollection<PersonXX> Teachers {get;set;}
}
2/ změna C# kódu tak, aby nově používal nové schéma (nekonvenční PersonXX) a MIGRACE do migrace ručně dopsat přelití dat z původních tabulek do nových (nekonvenčních) UPDATE DB 3/ likvidace zbytečných entit MIGRACE 4/ přejmenování nekonvenčních názvů na sémantické MIGRACE UPDATE DB *** V případě automatických migrací je to podobný ale přelití dat se musí udělat ručně na SQL Serveru, což vyžaduje větší synchronizaci.
|