实体框架:中断运行SaveChanges

时间:2010-05-19 13:16:24

标签: c# entity-framework transactions savechanges

我有一个独特的ObjectContext,我在其上执行SaveChanges()。此操作需要一些时间(约60秒)。 此操作在线程中执行。

我的用户在屏幕上有一个“取消”按钮 我能够停止线程,但如果SaveChanges()已经开始,我无法找到取消它。
实际上我发现无法访问底层事务(我也有一个隔离级别问题:此操作几乎锁定了数据库中的所有表,因此其他用户无法使用该应用程序。)

如果我关闭底层连接会有用吗? EF将无法发送Rollback指令,但我想数据库无论如何都会执行它,不是吗?

我已经看到我可以使用TransactionScope但它需要访问DTC,而且在编辑服务器/网络配置时我的主机并不是真正的高性能。
因此,如果存在“实体框架”解决方案,我宁愿选择那个。

1 个答案:

答案 0 :(得分:0)

是SaveChanges()保存多个更新?是否可以更新然后单独保存每个?

然后,如果您在交易中并且用户取消,则您的保存中会有更多的粒度。