在 Code-First Entity Framework 中,有没有办法修改事务行为,使其不会丢弃所有更改,而是将所有更改保持到故障点?
例如:
foreach {var objectToSave in ArrayOfEntityObjects)
{
MyContext.Insert(objectToSave);
}
try
{
MyContext.SaveChanges();
}
catch (Exception x)
{
//handling code
}
在上面的示例中,假设数组是一个包含 100 个对象的数组,并且在第 50 项上发生了错误,我想保留那些成功的对象,至少到失败点为止。知道我们在 foreach 循环的每次迭代期间执行 MyContext.SaveChanges() 命令来执行此操作,但我们希望在一次提交中提交到数据库的性能提升(我们的理解是 EF 一次发送所有命令对于事务,通过单个连接,因此仅使用一次往返)。