有人能告诉我如何在交易下批量插入数据到SQL Server吗?我有一个程序从数据导入数据到数据库的多个表。我正在使用SQL Server和Entity Framework将这些记录导入到事务下的数据库中。请告诉我这是好的方式吗?
我正在使用Entity Framework。但是当我导入1000条记录时,我发现它会导致SQL Server上的锁定。
该文件包含许多列。很少列属于父表,其余列属于子表。那么我们如何使用SqlBulkCopy
来映射它们?
有10个子表。我需要先将数据从文件插入子表。如果插入记录导致子表中的错误某些原因我将不得不回滚该事务并继续从文件中的另一条记录
答案 0 :(得分:2)
今天我找到了一个很好的批量插入库:EntityFrameworkETL
PM> Install-Package EntityFrameworkETL
项目描述 实体框架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));
答案 1 :(得分:0)