2010-05-19 36 views
0

我有一个独特的ObjectContext,我在其上执行SaveChanges()。此操作需要一些时间(〜60秒)。 此操作在一个线程中执行。实体框架:中断正在运行SaveChanges

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

如果我关闭了底层连接,它会起作用吗? EF将无法发送Rollback指令,但我猜数据库会执行它,不是吗?

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

回答

0

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

然后,如果你在一个事务中,并且用户取消,你的保存会有更多的粒度。

+0

但我将无法回滚已插入/更新的值... – 2010-05-19 14:05:20

相关问题