我有一个独特ObjectContext
的,我在其上执行一个SaveChanges()
. 此操作需要一些时间(约 60 秒)。该操作在一个线程中执行。
我的用户在屏幕上有一个“取消”按钮。
我可以停止线程,但如果SaveChanges()
已经开始,我无论如何都找不到取消它。
事实上,我发现无法访问底层事务(我还有一个隔离级别问题:这个操作几乎锁定了数据库中的所有表,因此其他用户无法使用该应用程序)。
如果我关闭底层连接会起作用吗?EF 将无法发送Rollback
指令,但我猜数据库无论如何都会执行它,不是吗?
我已经看到我可以使用TransactionScope
它,但它需要访问 DTC,而且我的主机在编辑服务器/网络配置时性能并不高。
因此,如果存在“实体框架”解决方案,我会更喜欢那个。