多个插入 - 在EF事务中选择 - SaveChanges失败

时间:2016-08-22 12:33:04

标签: c# entity-framework db2 entity-framework-6 .net-4.5

我打开了一个Entity Framework事务,并在顺序链中处理多个insert-select-updates。 SaveChanges最后在UitOfWork上调用,但问题是,当调用SaveChanges时,"选择数据"查询的实体也会再次被插入到db中,从而导致DbUpdateException失败。

IUnitOfWorkTransaction transaction = unitOfWork.BeginTransaction();

using context1()
{
repository.(Insert into table 1)

repository.(Select data from table 2)
repository.(Select data from table 3)

repository.(Insert into table 4)

repository.(Update table 1 and table 2)
}

unitOfWork.SaveChanges();

正如我们所看到的,它在1个事务中使用顺序事件链,在单个dbcontext下使用所有存储库调用,但是当触发SaveChanges时,对于表(实体)抛出DbUpdateException,这是"只是" "选择数据"的一部分查询而不是插入/更新。 EF正在尝试插入/更新/删除该表中的数据,当它刚刚被查询并且未设置为插入时。

在设置正确保存所有更改的过程方面的任何帮助都非常感谢。

0 个答案:

没有答案