Расширения Entity Framework Массовая вставка и дублирование записей
У меня проблема с массовой вставкой данных с использованием библиотеки EF Extensions от ZZZ Projects, что записи должны быть уникальными для определенных таблиц (таблиц поиска), и я импортирую файлы в базу данных, чтобы записи могли повторяться, я не могу найти способ заставить библиотеку игнорировать существующие данные
Я не уверен, какие параметры использовать при массовой вставке записей, которые могут существовать несколько раз.
2 ответа
Вам понадобится опция InsertIfNotExists, как показано ниже. Выражение ColumnPrimaryKeyExpression не названо. Это может быть любое поле в ваших данных, которое вы хотите уникальным.
await dbContext
.BulkInsertAsync(sourceFiles, options =>
{
options.BatchSize = BatchSize;
options.AutoMapOutputDirection = false;
options.InsertIfNotExists = true;
options.InsertKeepIdentity = false;
options.ColumnPrimaryKeyExpression = sf => new { sf.<YourUniqueField>};
})
.ConfigureAwait(false);
Вы можете использовать " options.InsertIfNotExists = true; ", как показано ниже:
context.BulkInsert(customers, options => {
options.InsertIfNotExists = true;
options.PrimaryKeyExpression = customer => customer.Code;
});
Параметр options позволяет использовать лямбда-выражение для настройки способа вставки сущностей.
Предлагаю посетить https://entityframework-extensions.net/