我在SQL Server上有一堆存储过程,每个存储过程都有一个输出参数@res_xml xml output
。其中每个都将返回@res_xml
中的XML片段。
“片段”我指的是XML片段尚未最终确定,并且可能很容易包含多个根节点(ConformanceLevel.Fragment)。
SQL Server对XML片段没有任何问题,将它们存储得很好并且当一个存储过程想要在其自己的输出中包含另一个存储过程的输出时,可以重新使用它们。
然而,Linq2Sql不支持这一点。它会将XML参数映射到单个XElement
,这会抛出XML片段。
我不想更改所有存储过程以始终将其输出包装在根节点中。这是一个很多的打字,它需要在存储过程之间重用XML时明确地抛出这个虚假的根节点,它会破坏支持片段的现有的非linq2sql客户端。所以我打算按摩它。“
It is advised可能包含片段的XML
参数会映射到String
。我很好,但有没有办法指示linq2sql地图xml
到string
而不是XElement
?
我目前所做的是:
DataClasses.designer
并复制生成的代码以调用程序。partial class DataClassesX
。System.Xml.Linq.XElement
手动替换所有System.String
。这很有效,但很烦人 我不能只是替换就地,因为设计师会覆盖它。