EF: перенос данных при добавлении новой таблицы между существующими отношениями N к N - PullRequest
0 голосов
/ 20 апреля 2020

Я использую 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: это невозможно сделать независимыми вставками и обновлениями. Какие есть варианты для миграции существующих данных, как указано?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...