在Codefluent

时间:2016-09-10 18:13:09

标签: sql-server xml codefluent

在SQL 2014数据库中,我有一个使用XML作为参数的存储过程。

我正在尝试创建一个将XML用作参数类型的Codefluent方法。参数定义为:

<cf:parameter typeName="xml" name="XMLcriteria " />

这导致DB过程的参数定义为:

 @XMLcriteria [nvarchar] (256)

而不是预期的:

 @XMLcriteria as XML

如果我尝试增加参数的最大大小,我会得到一个更奇怪的结果:

@XMLcriteria [nvarchar] (max) = ''

如何将XML作为Method参数传递,以便在SQL生成器创建的存储过程中将参数定义为XML?

我也很难理解XML CF类型的作用。如果我使用XML类型创建CF实体属性,则BOM会生成类型为 String 的类属性。如果我将 xElement xDocument 分配给此属性,则会删除所有XML标记,并且最终只会使用一长串值。在这种情况下,当我使用此实体(应该包含XML属性)作为SQL过程中的参数时,我得到一个长字符串,无法选择元素。

1 个答案:

答案 0 :(得分:1)

要定义XML参数,您可以使用属性cfps:dataType="xml"

<cf:parameter typeName="xml" cfps:dataType="xml" name="arg" />

如果需要类型为XmlElementXmlDocument的属性,则可以添加部分类并添加一个解析字符串属性值的属性。