更好的C#算法使一个数据集等于另一个?

时间:2011-11-15 17:24:10

标签: c# algorithm dataset

这是我们的问题:

我们有一个我们的UI绑定的当前数据集(20个表,每个表数千行)。通常,我们使用自定义PubSub实现来应用业务流程(客户端和服务器)中其他参与者的增量更改。由于我们客户的旧习惯以及PubSub的一些可靠性问题,我们的一些客户坚持要求点击我们的硬刷新按钮。

该按钮获取数据的完整副本并清除现有数据集(#1)并合并新数据集(#2),从而有效地使数据集#1与#2相同。我们的 merge 算法相当简单:

public static void MergeDataSets(ref DataSet original, DataSet updated)
{
    if (null == updated)
    {
        return;
    }
    if(null == original)
    {
        original = updated.Copy();
    }
    else
    {
        // TODO: ELI: it would be nice to have an actual merge algorithm to publish changes from updated to original.
        original.Clear();
        original.Merge(updated, false, MissingSchemaAction.Add);
    }
}

正如您所看到的,我确实记下了我们应该设计一个真正的合并算法。但当时,我们的客户接受了性能权衡的副作用。或者我们想到了。无论如何,主要的副作用是绑定到我们数据的任何数据网格(Infragistics)都会被重置,因此所有扩展/折叠的信息都会丢失,选择等。

那么,有人可以推荐已经做过类似事情的第三方库吗?如果没有,有关如何继续实施的任何建议?如果我们成功了,我一定会在这里公布结果......

0 个答案:

没有答案