C# 如果数据库连接丢失,是否提交SaveChange事务?

C# 如果数据库连接丢失,是否提交SaveChange事务?,c#,oracle,entity-framework,rowlocking,C#,Oracle,Entity Framework,Rowlocking,我们已经实现了WordAddin,并使用EF6连接到oracle数据库。使用addin,用户可以从数据库加载文档。编辑文档后,用户关闭文档。我们使用DocumentBeforeClose事件来更新数据库中的文档。只有一个用户可以在数据库中编辑和保存文档。问题是,有时oracle中存在行锁争用。据我所知,行锁意味着一个事务正在更新行,另一个事务正在等待。如果SaveChanges期间的db连接丢失,是否可能不提交事务?或者如果word在保存更改期间意外关闭 在word中关闭文档后,word会按代码

我们已经实现了WordAddin,并使用EF6连接到oracle数据库。使用addin,用户可以从数据库加载文档。编辑文档后,用户关闭文档。我们使用DocumentBeforeClose事件来更新数据库中的文档。只有一个用户可以在数据库中编辑和保存文档。问题是,有时oracle中存在行锁争用。据我所知,行锁意味着一个事务正在更新行,另一个事务正在等待。如果SaveChanges期间的db连接丢失,是否可能不提交事务?或者如果word在保存更改期间意外关闭


在word中关闭文档后,word会按代码关闭,这可能是问题所在吗?

在保存过程中,当连接丢失时,不太可能提交事务

EF在执行
SaveChanges
时启动事务,并在所有数据库交互的最后提交它。只有在保存数据后立即启动另一个数据库交互,才能在保存成功时注意到连接丢失


您需要的是确保宝贵的修改不会丢失。

请提供相关代码。保存更改时,我无法判断关闭Word的效果。我认为在Word成功保存文档之前,实际的
SaveChanges
不会启动,因此如果它崩溃,
SaveChanges
可能不会运行。