Я использую Entity Framework, сначала код. У меня есть ситуация, когда у меня есть отношение N к N между двумя таблицами. Это проще всего объяснить на примере. Допустим, у нас есть модель, которая связывает сотрудников с клиентами, для которых они работают:
N to N
Employee --- EmployeeCustomer --- Customer
Модель данных изменяется таким образом, что между Сотрудником и Заказчиком добавляется дополнительная сущность Project. Это также связано с отношениями N к N:
N to N N to N
Employee --- EmployeeProject --- Project --- ProjectCustomer --- Customer
Изменение схем довольно просто при переносе EF, но перенос данных более сложен. Вот что должно произойти:
Для каждой строки в EmployeeCustomer
- Создать (по умолчанию) запись в таблице Project, возвращая Project.Id
- Создать запись в EmployeeProject таблица, которая связывает EmployeeCustomer.Employee_Id и недавно созданный Project.Id
- Создать запись в таблице ProjectCustomer, которая связывает EmployeeCustomer.Customer_Id и вновь созданный Project.Id
Миграция данных потребует некоторого вида l oop: это невозможно сделать независимыми вставками и обновлениями. Какие есть варианты для миграции существующих данных, как указано?