【发布时间】:2013-11-17 17:52:40
【问题描述】:
我有一个 excel 文件,我想使用实体框架基于现有的数据库表导入 excel 文件。现在我首先将 excel 工作表转换为 DataTable,并有一个循环遍历 DataTable 的每一行。每行都有一个 id 字段,如果 id 存在于数据库表中,我需要更新它,否则我需要将此行插入到数据库表中。我想使用实体框架将我的循环包装到一个事务中,以便在出现错误时进行回滚。但是我遇到了两行具有相同 id 但值不同的场景。检查第一行并添加了我的实体集合,但第二行可能会错误地更新第一个添加的行,因为由于循环后调用的延迟 context.SaveChanges() 而实际上并未添加第一行。如何更新实体集合中先前添加的行,而无需在循环内重复调用 context.SaveChanges()?谢谢。
【问题讨论】: