实体框架扩展批量插入和重复记录

时间:2020-06-06 04:20:22

标签: c# entity-framework entity-framework-extensions

我在使用ZZZ Projects的EF Extensions库批量插入数据时遇到问题,该记录对于特定表(查找表)应该是唯一的,并且我正在将文件导入数据库,以便可以重复记录,我可以找不到使库忽略现有数据的方法

我不确定在批量插入可以多次存在的记录时要使用哪些选项。

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

您可以使用“ options.InsertIfNotExists = true;” 如下:

context.BulkInsert(customers, options => { 
    options.InsertIfNotExists = true;
    options.PrimaryKeyExpression = customer => customer.Code;
  });

options参数使您可以使用lambda表达式来自定义实体的插入方式

我建议访问entityframeworkExtensions