当通过 dapper 将 xml 字符串传递到 SQL Server 2008 时,dapper 似乎正在为 xml 字符串中的每个字符创建一个参数。
例如,如果字符串是<outer></outer>
它似乎正在为每个字符('<'、'o'、'u'、't'等)创建一个参数。
在旧版本中,代码会将一个参数(即指定的 xml 参数)传递给存储过程。
设置代码如下所示 -
var xml = @"
<OuterElement>
<InnerElement>1</InnerElement>
<InnerElement>2</InnerElement>
<InnerElement>3</InnerElement>
<InnerElement>4</InnerElement>
</OuterElement>";
var parameters = new Dapper.DynamicParameters();
parameters.Add("@XmlParameter", xml, DbType.Xml);
SqlMapper.Query(
connection,
"dbo.TestXmlInput",
parameters,
commandType: CommandType.StoredProcedure,
commandTimeout: 60
);
我的问题如下:其他人可以复制吗?如果是这样,此更改是故意的还是错误的?是否有实现 xml 参数传递的解决方法?
生成的 SQL 如下所示:
exec dbo.TestXmlInput (@XmlParameter1, @XmlParameter2, @XmlParameter3, ...)
任何帮助将不胜感激。