【发布时间】:2015-12-29 23:37:53
【问题描述】:
我目前正在从事一个项目,我每天从客户端获取一个 xml 文件,我需要从中读取数据并将其加载到数据库中。我实现这一点的方式是,我从 xsd 生成一个类,并使用 StreamReader 读取 xml 文件并反序列化数据,然后循环访问成员并将它们添加到数据库中。
现在,我有另一个要求,只有当成员详细信息与前一天的 xml 文件发生更改时,我才需要将成员添加到数据库中。我可以用相同的方式对其进行编码,并添加一个逻辑来搜索/比较成员详细信息与前一天的 xml 文件,并在发现任何更改时添加成员。
但是这个过程效率很低,因为我需要为新xml中的每个成员遍历前一天的xml。有没有有效的方法来实现这一点?
请提供您的建议。谢谢
【问题讨论】:
-
您可以将今天的 xml 加载到数据库的“暂存”表中,并使用存储过程在数据库级别处理比较和更新。每天,清空“暂存”表并加载新的 xml,然后运行您的存储过程。
-
我已经检查了该链接,并且比较输出与原始 xsd 不匹配..因此我将无法反序列化结果....msdn.microsoft.com/en-us/library/aa302294.aspx