0

所以我有以下要求

开始交易

  1. BULK INSERT 记录到 TableA
  2. 获取 TableA 中最近添加的行的 ID,使用 LINQ 更新内存中的关联记录
  3. BULK INSERT 更新的记录到 TableB
  4. 获取 TableB 中最近添加的行的 ID,使用 LINQ 更新内存中的关联记录
  5. BULK INSERT 更新的记录到 TableC
  6. 获取 TableC 中最近添加的行的 ID,使用 LINQ 更新内存中的关联记录
  7. BULK INSERT 更新的记录到 TableF
  8. 获取 TableF 中最近添加的行的 ID,使用 LINQ 更新内存中的关联记录
  9. BULK INSERT 更新的记录到 TableD
  10. 获取 TableF 中最近添加的行的 ID,使用 LINQ 更新内存中的关联记录
  11. 最后,将记录 BULK INSERT 插入 TableE

提交交易

我只是对每个表进行批量复制,每次都使用 select 语句返回生成的 id,将它们映射到下一组记录,然后重复。但是我想知道一种更好的方法来处理这种情况,因为目前运行它需要一段时间(在上面的算法中,每个 SQL BULK COPY 语句平均 500 条记录大约需要 20 分钟)。我想在我的 DbContext 对象上调用 Refresh()(我有 ORM 设置,但我使用 SQLBulkCopy 进行批量插入),然后以这种方式访问​​生成的 IDS,但我认为这也不是一个好主意。请问我能做些什么来改善这一点?任何建议将不胜感激。先感谢您。

4

0 回答 0