我有一个独特的ObjectContext
,我在其上执行SaveChanges()
。此操作需要一些时间(约60秒)。
此操作在线程中执行。
我的用户在屏幕上有一个“取消”按钮
我能够停止线程,但如果SaveChanges()
已经开始,我无法找到取消它。
实际上我发现无法访问底层事务(我也有一个隔离级别问题:此操作几乎锁定了数据库中的所有表,因此其他用户无法使用该应用程序。)
如果我关闭底层连接会有用吗? EF将无法发送Rollback
指令,但我想数据库无论如何都会执行它,不是吗?
我已经看到我可以使用TransactionScope
但它需要访问DTC,而且在编辑服务器/网络配置时我的主机并不是真正的高性能。
因此,如果存在“实体框架”解决方案,我宁愿选择那个。
答案 0 :(得分:0)
是SaveChanges()保存多个更新?是否可以更新然后单独保存每个?
然后,如果您在交易中并且用户取消,则您的保存中会有更多的粒度。