我编写了一个小工具,用于存档来自我的Entity Framework代码优先驱动数据库的数据。
我正在对它进行彻底的测试,而且我正在尝试使用大量数据。哪里遇到一些问题。例如,我有时会收到这样的超时或例外情况:
试图锁定时发现死锁;尝试重新启动交易。
我知道什么是交易,我猜实体框架正在为一个DbContext
中的所有更改创建它们,所以如果在调用SaveChanges()
时它们中的任何一个或整个事件都失败了改变了(短边问题:我可以再次运行SaveChanges()
吗?)
我想知道的是:因为我需要在整个数据库中删除不同批次的信息(在导出之后),我会不断为每个批次创建dbcontext
。
我应该为每个批次手动创建交易并在最后一次提交所有交易吗?
我正在学习信息学,并在我的一门课程中学习交易信息系统。在删除批量数据时,Entity Framework如何为我的所有单个事务创建元事务,因此只有在一切运行良好时才会真正删除遍布数据库的所有数据,如下所示:
或者有更好的方法来解决整个问题吗?