Entity Framework 扩展批量插入和重复记录
Entity Framework Extensions Bulk Insert and duplicate records
我在使用 ZZZ Projects 的 EF 扩展库批量插入数据时遇到问题,记录对于特定表(查找表)应该是唯一的,我正在将文件导入数据库以便可以重复记录,我找不到让库忽略现有数据的方法
我不确定在批量插入可以存在多次的记录时使用哪些选项。
您需要如下所示的 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;
});
选项参数让您可以使用 lambda 表达式来自定义插入实体的方式
我在使用 ZZZ Projects 的 EF 扩展库批量插入数据时遇到问题,记录对于特定表(查找表)应该是唯一的,我正在将文件导入数据库以便可以重复记录,我找不到让库忽略现有数据的方法
我不确定在批量插入可以存在多次的记录时使用哪些选项。
您需要如下所示的 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;
});
选项参数让您可以使用 lambda 表达式来自定义插入实体的方式