Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架:中断运行SaveChanges_C#_Entity Framework_Transactions_Savechanges - Fatal编程技术网

C# 实体框架:中断运行SaveChanges

C# 实体框架:中断运行SaveChanges,c#,entity-framework,transactions,savechanges,C#,Entity Framework,Transactions,Savechanges,我有一个唯一的ObjectContext,在它上执行SaveChanges()。此操作需要一些时间(约60秒)。 此操作在线程中执行 我的用户在屏幕上有一个“取消”按钮。 我可以停止线程,但是如果SaveChanges()已经启动,我无法找到任何方法来取消它。 事实上,我找不到访问底层事务的方法(我还有一个隔离级别的问题:此操作锁定数据库中的几乎所有表,因此其他用户无法使用该应用程序) 如果我关闭了底层连接,它会工作吗?EF将无法发送回滚指令,但我想数据库无论如何都会执行它,不是吗 我知道我可以

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

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

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

我知道我可以使用
TransactionScope
,但它需要访问DTC,而且我的主机在编辑服务器/网络配置时没有真正的性能。
因此,如果存在一个“实体框架”解决方案,我更喜欢它。

您的SaveChanges()是否保存多个更新?是否可以分别更新然后保存每个

然后,如果您在一个事务中,并且用户取消了,那么您的保存将具有更高的粒度