我们已经实现了一个WordAddin,并使用EF6连接到oracle数据库。使用该插件,用户可以从数据库中加载文档。编辑完文档后,用户关闭文档。我们使用DocumentBeforeClose-Event更新数据库中的文档。只有一个用户可以在数据库中编辑和保存文档。问题是,有时oracle行锁争用是存在的。据我所知,行锁意味着一个事务正在更新行,而另一个事务正在等待。有没有可能,如果SaveChanges期间的数据库连接丢失,事务就不会被提交?或者如果word在SaveChange期间意外关闭?
在word中关闭文档后,word会根据代码关闭,这会是问题所在吗?
发布于 2019-06-08 03:14:54
当保存时连接丢失时,事务不太可能被提交。
EF在执行SaveChanges时启动一个事务,并在所有数据库交互的最后提交该事务。只有在保存数据后立即启动另一个数据库交互,才会在保存成功时注意到丢失的连接。
您需要的是一个retry policy,以确保宝贵的修改不会丢失。
https://stackoverflow.com/questions/56491309
复制相似问题