我正在尝试从作为XML返回的SQL Server中解析结果(在查询中使用FOR XML
)。
我有一个.EDMX
文件,它将存储过程映射到一个复杂类型(有一列:Name = XML_F52E2B61-18A1-11d1-B105-00805F49916B,EDMType = String,Db Type = ntext,Nullable = true ,MaxLength = Max)。
当我调用存储过程时,结果类型为:
ObjectResult<"ResultName">
当我尝试将其写入控制台时,我收到错误消息
数据阅读器与指定的&#34;&#34; ResultName&#34;&#39;不兼容。该类型的成员&#39; XML_F52E2B61_18A1_11d1_B105_00805F49916B&#39;在数据阅读器中没有相应的具有相同名称的列。
因此,因为我使用复杂类型收到错误消息,所以我决定尝试将结果更改为标量:string。
我现在在输出窗口(使用System.Diagnostics.Debug.WriteLine("objectName")
)得到的是:
(System.Data.Entity.Core.Objects.ObjectResult`1[System.String])
如果我尝试对结果做任何事情,我会收到错误消息,如果我预告或结束它我会收到错误
来自物化系统.Int32&#39;的指定演员表。输入&#39; System.String&#39;类型无效
这到底是什么意思? (事实上,如果我只对返回的对象执行.Count()
,我会得到相同的错误消息)
所以我想我最紧迫的问题是:我如何通过存储过程从SQL Server获取XML结果?
注意:我不是在谈论数据库中的XML列,我说的是将查询结果作为XML返回。
非常感谢任何帮助。
谢谢,
添
答案 0 :(得分:0)
对于那些感兴趣的人,这个问题与我正在处理的4个不同的SQL Server实例(Local,Dev,Stage,Prod)以及我使用不正确的实例来获取此信息有关。
我创建了一个返回XML的存储过程,我将其添加到Local实例中,然后当我运行我的测试应用程序时,我正在寻找Dev来获取信息。由于存储过程不存在,我遇到了错误。很抱歉这个长期的问题最终被注意到但是我犯了一个错误。
卫生署。
谢谢, Ť