Я использую SQLBulkCopy, в псевдокоде делаю так:
- сделать нового сотрудника доступным для данных
- сделать новый EmployeeAddress доступным для данных
- заполнить таблицу сотрудников, но не указывать employeeId как личность
- заполнить объект данных EmployeeAddress, но он содержит поле employeeId
- запишите обе таблицы данных в базу данных, сделав это дважды и изменив имя таблицы:
.
using (var bulk = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.KeepIdentity & SqlBulkCopyOptions.KeepNulls))
{
bulk.BatchSize = 25;
bulk.DestinationTableName = "Employee";
bulk.WriteToServer(employeeDataTable);
}
Как я могу указать employeeId во второй таблице данных, чтобы он правильно согласовывался с сотрудником, который был вставлен в первый раз? Я читаю данные так, что я читаю сотрудника и адрес вместе, поэтому вставка всех сотрудников, а затем возвращение и вставка всех адресов немного затруднительна.
Мне было интересно, есть ли элегантное решение?