Наше приложение для здравоохранения использует трехуровневую архитектуру (AngularjS + MVC + WebAPI). Я загружаю лист Excel и выполняю сопоставление столбцов на экране импорта. После этого я выполняю все проверки для каждой n каждой записи на листе Excel. Затем все эти 50 000 строк в виде сущностей передаются на уровень Web-API. Здесь я вставляю одну запись в родительскую таблицу, чтобы получить первичный ключ. Получив его, я перебираю 50 тыс. сущностей, чтобы обновить его в коллекции. Затем я использую addRange для обновления всех этих значений в базе данных. Вот фрагмент кода, который мы использовали в приложении.
db.tableA.Add(Entity1);
db.SaveChanges();
(Primary Key) fileId = int.Parse(Entity1.Id.ToString());
//DataList having 50K Entities
foreach (tableB coll in DataList)
{
coll.fileID = fileId;
}
db.tableB.AddRange(DataList);
db.SaveChanges();
Упомянутые ниже ссылки. Массовая вставка в структуру объекта
Как использовать массовую вставку в Entity Framework с использованием объекта Контекст?
Массовая вставка в структуру объекта
Но я не мог использовать EntityFramework.BulkInsert, поскольку он не совместим с последней версией EF (6.1). Есть ли другой жизнеспособный подход к использованию массовой вставки с использованием EF? Также мы можем использовать SqlBulkCopy в Entity Framework?