Расширения 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/

Другие вопросы по тегам