После поиска вокруг, я думаю, что нашел решение. Прежде всего установите следующую конфигурацию
var bulkConfig = new BulkConfig()
{
SetOutputIdentity = true,
PreserveInsertOrder = true
};
Запустите начальный пакет массовых конфигураций, чтобы вставить Entities1List и получить уникальные идентификаторы из SQL Сервер
_context.BulkInsert(Entity1ItemsList, bulkConfig);
Теперь назначены уникальные первичные ключи поэтому, чтобы установить их значения для связанных объектов, используйте
foreach (var item in Entity1ItemsList)
{
item.Entity2Obj.Entity1_ID = item.ID;
}
. Это установит правильные значения внешнего ключа. Затем я BulkInsert Entities2List
var Entities2List = Entity1ItemsList.Select(u => u.Entity2Obj).ToList();
_context.BulkInsert(Entities2List);
Я надеялся на что-то более простое, используя только один BulkInsert, который автоматически добавит все свойства навигации вместо 2. Но это работает, и это быстро.