gpt4 book ai didi

c# - 使用 EntityFramework Extended 批量插入

转载 作者:行者123 更新时间:2023-12-03 20:47:34 26 4
gpt4 key购买 nike

根据 this ,可以使用以下代码在实体中批量插入:

 var customers = GetCustomers();   
db.Customers.AddRange(customers);
db.SaveChanges();

我使用 SQL Profiler 验证执行了多少插入查询,我看到列表中的每个元素都有一个插入。

enter image description here

为什么?

最佳答案

添加范围

添加范围不会执行 BulkInsert,它只会在所有实体都添加到集合后检测一次 DetectChanges。

DetectChange 方法可能非常慢。

参见:Entity Framework - DetectChanges Performance

正如您所注意到的,它将实体一个一个地保存在数据库中,这非常慢。

EF.Extended

不再支持此库,并且没有批量插入功能。

批量插入库

支持批量插入的主要库有3个:

请注意,这两个免费库都不支持所有继承和关联。


免责声明:我是项目的所有者Entity Framework Extensions

除了批量插入之外,该库还允许您执行所有批量操作:

  • 批量保存更改
  • 批量插入
  • 批量更新
  • 批量删除
  • 批量合并
  • 批量同步

例子:

// Easy to use
context.BulkSaveChanges();

// Easy to customize
context.BulkSaveChanges(bulk => bulk.BatchSize = 100);

// Perform Bulk Operations
context.BulkDelete(customers);
context.BulkInsert(customers);
context.BulkUpdate(customers);

// Customize Primary Key
context.BulkMerge(customers, operation => {
operation.ColumnPrimaryKeyExpression =
customer => customer.Code;
});

关于c# - 使用 EntityFramework Extended 批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43164247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com