gpt4 book ai didi

c# - 在 SQL Server 中插入批量记录

转载 作者:行者123 更新时间:2023-11-30 17:01:09 25 4
gpt4 key购买 nike

谁能告诉我如何在事务下将数据批量插入到 SQL Server 中?我有一个程序可以将数据从一个文件导入到数据库的多个表中。我正在使用 SQL Server 和 Entity Framework 将这些记录导入到事务下的数据库中。请告诉我这是遵循的好方法吗?

我正在为此使用 Entity Framework 。但是当我导入1000条记录时,我发现它导致了SQL Server的锁定。

该文件包含许多列。很少有列属于父表,其余列属于子表。那么我们如何使用 SqlBulkCopy 映射它们呢?

有 10 个子表。我需要先将数据从文件插入到子表中。如果由于某种原因插入记录导致子表出错,我将不得不回滚该事务并继续从文件中获取另一条记录

最佳答案

今天我发现了一个很好的批量插入库:EntityFrameworkETL

PM> Install-Package EntityFrameworkETL

项目描述 Entity Framework ETL 用于使用现有 DbContext 批处理命令。这在生产和开发之间移动数据时很有用。

示例用法

ETL = new EntityFrameworkETL.ETL(() => new DataContext("name=source"), () => new DataContext("name=target"));
ETL.DeleteAll<Person>();
ETL.BatchInserts<Person>(100, true, x => x.Include("Jobs").Where(y=> y.Age > 65 && y.IsRetired));

关于c# - 在 SQL Server 中插入批量记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21347608/

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