gpt4 book ai didi

c# - 同步框架获取冲突的行数据

转载 作者:太空宇宙 更新时间:2023-11-03 16:07:46 25 4
gpt4 key购买 nike

我正在使用 Sync Framework 同步两个 Sql Server 数据库。

当检测到某些冲突时,我会捕获事件并执行一些逻辑来解决它,但我无法获取冲突的行数据。

那么我的问题是,如何获取即将同步的行中具体的冲突数据?

下面的代码说明了我在做什么:

if (e.Conflict.Type == DbConflictType.LocalInsertRemoteInsert)
{
DataTable conflictingRemoteChange = e.Conflict.RemoteChange;
}

最佳答案

SqlSyncProvider 引发 ApplyChangeFailed 事件时,您使用 DbApplyChangeFailedEventArgs 对象,该对象提供有关导致失败的错误或冲突的信息. e.conflict 属性还包含:

  • RemoteChange:获取包含来自远程数据库的冲突行。
  • LocalChange:从本地数据库获取包含冲突行的 DataTable 对象。

这些表中的每一个至多包含代表冲突行的一行。

Datarow drRemote = e.Conflict.RemoteChange.Rows[0];
Datarow drLocal = e.Conflict.LocalChange.Rows[0];

要获取行中冲突的特定值,恐怕没有其他方法可以手动比较 DataRow 中的每个值。

编辑:@JuneT 说得比我好 ;-)

You can only get the rows in conflict. it will not tell you which columns are in conflict. Sync Framework change tracking is at row level. it simply logs that a row has changed and doesn't care what changed.

关于c# - 同步框架获取冲突的行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18662752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com