我正在尝试将大量对象插入表中,但我没有任何有效的方法来检查某些记录是否还不存在。每次我使用它时:
using Z.EntityFramework.Extensions.Core;
...
await ac.BulkInsertAsync(query, (o) => { o.?? });
它只是在每次找到重复项时停止插入。有没有办法一次运行所有查询,而不会在第一个错误时停止,或者直接应用IGNORE
?
您应该检查 InsertIfNotExists 选项。只会插入尚不存在的记录。
using Z.EntityFramework.Extensions.Core;
...
await ac.BulkInsertAsync(query, (o) => { o.InsertIfNotExists = true });
回答子问题
我在其中一个字段的表中有一个唯一键。如何为批量操作设置它?
您可以使用 ColumnPrimaryKeyExpression 选项自定义键。
ctx.BulkInsert(list, options =>
{
options.ColumnPrimaryKeyExpression = x => new { x.ColumnKey1, x.ColumnKey2 };
options.InsertIfNotExists = true;
});