gpt4 book ai didi

entity-framework-6 - 使用 Entity Framework 从 csv 文件批量插入

转载 作者:行者123 更新时间:2023-12-04 07:57:44 24 4
gpt4 key购买 nike

我想使用 Entity Framework 从 csv 文件批量插入到 MS SQL Server 数据库中。是否有使用 Entity Framework 进行批量插入的内置方法?

谢谢

最佳答案

Entity Framework 不支持批量插入。如果您尝试添加数千个对象,只需将它们添加到 DbSet,然后调用 SaveChanges,您的性能就会显着下降。

using(var db = new Db()) 
{
foreach(var item from data)
{
db.Items.Add(item);
}
db.SaveChanges();
}

发生这种情况是因为 EF 跟踪了每个对象的所有变化,导致内存使用量大和计算量大。

根据您使用的 EF 版本和方法,您可以禁用跟踪更改,按 100 或 1000 个项目中相对较小的部分插入对象,具体取决于它们的大小和在您的情况下的实际性能。然后计算一次变化并保存。例如。

int count = 100;
using (var db = new BloggingContext())
{
data.Configuration.AutoDetectChangesEnabled = false;
foreach (var item in data)
{
db.Items.Add(item);
--count;
if(count <= 0)
{
count = 100;
db.SaveChanges();
}
}
db.SaveChanges(); // To make sure we save everything if the last part was smaller than 100
}

也有一些库支持批量插入。例如:https://github.com/loresoft/EntityFramework.Extended

关于entity-framework-6 - 使用 Entity Framework 从 csv 文件批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36725006/

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