使用Linq2Sql使用XML片段

时间:2012-08-09 09:29:00

标签: xml sql-server-2008 linq-to-sql mapping entity-relationship

我在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地图xmlstring而不是XElement


我目前所做的是:

  • 将过程从服务器资源管理器拖到linq2sql设计器中。代码已生成。
  • 进入DataClasses.designer并复制生成的代码以调用程序。
  • 将此代码粘贴到partial class DataClassesX
  • 使用System.Xml.Linq.XElement手动替换所有System.String
  • 返回设计师并删除拖入的程序。

这很有效,但很烦人 我不能只是替换就地,因为设计师会覆盖它。

0 个答案:

没有答案