.net - EF6 事务回滚

标签 .net entity-framework transactions entity-framework-6

我们正在扩展上下文对象以具有与另一个系统的同步功能。我们目前正在 savechanges 中执行此操作。然而,我们意识到有一种情况,上下文将用于事务状态,使用 begintransaction 多次调用 savechanges。在整个过程完成之前,我们不想同步数据。我们考虑过在处理上下文时这样做。

我们面临的一个问题是了解交易是否成功。如果它成功了,那么很好的同步了。如果它被回滚,那么我们当然不想同步。当处理上下文时,我们如何知道事务的状态?

最佳答案

让您的模型需要同步来实现一个接口(interface),例如 iSyncable,它 promise 您将在模型成功保存后立即同步。如果您通过导航属性拥有相关表,请保存所有内容并将其放入导航属性中,然后再进行同步,以便您的同步功能拥有所需的所有对象。

顺便说一下,如果您需要进行任何数据转换,这就是您进行操作的地方。

关于.net - EF6 事务回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31544012/

相关文章:

c# - 将解决方案发布到文件夹时出错 - 自托管 .NET

c# - 不显示堆栈跟踪的 wcf 异常

sql-server - 不包含的导航属性和数据库往返

c# - 如何以一种形式发布两个或多个模型?

c# - 在 Mono - Linux 上使用 FileInfo 和 DirectoryInfo 类

.net - 如何在.NET 中对多个 SqlConnection 使用单个 SqlTransaction?

c# - 具有 Entity Framework Core 2.0 的多个子实体中的相同属性名称

php - Laravel:如果您不提交或回滚您手动启动的事务怎么办?

MySql InnoDB可重复读取锁的意外行为

java - 为什么在单条记录上调用 Spring Data JPA save() 比在记录列表上调用它慢?