0

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

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

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

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

4

1 回答 1

0

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

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

于 2010-05-19T13:33:11.103 回答