|
1
|
| Malik Daud Ahmad Khokhar · 技术社区 · 17 年前 |
|
|
1
0
您有几个选择:
我建议在你的情况下选择2。它应该在内存使用方面具有良好的伸缩性,并且应该为处理文件提供最简单的实现。 |
|
2
1
如果数据相当清晰地映射到对象模型,您可以尝试使用xsd.exe从.xsd生成一些类,并将这些类处理到您选择的DAL中。问题是,如果卷很高(您提到了数千条记录),则很可能 许多 往返旅行。 另一种选择可能是将数据“按原样”传递到数据库,并使用SQL/XML处理TSQL中的数据-可能是接受XML类型参数(SQL Server 2005等)的存储过程。 |
|
|
3
1
我同意你应该使用一个XML阅读器的想法,但我想我会尝试一些不同的方法。 基本上,我首先验证整个xdocument,然后如果有错误,我将枚举整个订单,并根据需要将它们存储起来。它不漂亮,但也许会给你一些建议。
您可以使用一个公共函数来代替lambda表达式,但我只是把它放在一起。另外,您可以构建两个xdocument,而不是将order元素推送到一个列表中。我相信这里也有很多其他的问题,但也许这会引发一些问题。 |
|
|
4
0
这很大程度上取决于“验证”在您的场景中的含义。我假设,因为您使用的是.xsd,所以您已经在验证数据的语法是否正确。 所以,验证可能意味着您将调用其他服务或过程来确定订单是否有效? 您可能需要查看SQL Server集成服务。SSIS中的XML任务允许您执行诸如XPath查询、合并之类的操作,可能还可以执行与该文档相关的所有操作。您也可以使用这个方法对模式文件进行所有的前期验证。 Marc将数据传递到存储过程的选项在这种情况下也可能有效,但是ssis(或者,甚至是dts,但是您将放弃太多与XML相关的内容,使其成为一个不错的选项)将使您在视觉上协调所有这些工作。另外,它将使这些东西更容易耗尽流程,因此您最终应该得到一个更具可扩展性的解决方案。 |
|
|
5
0
通过验证,我的意思是验证每个节点。至少有一个错误的节点需要插入到新的XML文档中。最后,我应该有两个XML文档。一个包含成功节点,另一个包含失败节点。我能做到吗?我用的是LINQ。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |