我们正在扩展上下文对象以具有与另一个系统的同步功能。我们目前正在 savechanges 中执行此操作。然而,我们意识到有一种情况,上下文将用于事务状态,使用 begintransaction 多次调用 savechanges。在整个过程完成之前,我们不想同步数据。我们考虑过在处理上下文时这样做。
我们面临的一个问题是了解交易是否成功。如果它成功了,那么很好的同步了。如果它被回滚,那么我们当然不想同步。当处理上下文时,我们如何知道事务的状态?
最佳答案
让您的模型需要同步来实现一个接口(interface),例如 iSyncable,它 promise 您将在模型成功保存后立即同步。如果您通过导航属性拥有相关表,请保存所有内容并将其放入导航属性中,然后再进行同步,以便您的同步功能拥有所需的所有对象。
顺便说一下,如果您需要进行任何数据转换,这就是您进行操作的地方。
关于.net - EF6 事务回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31544012/