簡體   English   中英

在實體框架6.1.2中解析XML結果

[英]Parse XML Result in Entity Framework 6.1.2

我試圖解析從作為XML返回的SQL Server的結果(在查詢中使用FOR XML )。

我有一個.EDMX文件,它將存儲過程映射到一個復雜類型(有一列:Name = XML_F52E2B61-18A1-11d1-B105-00805F49916B,EDMType = String,Db Type = ntext,Nullable = true,MaxLength = Max)。

當我調用存儲過程時,結果類型是:

ObjectResult<"ResultName">

當我嘗試將其寫入控制台時,我收到一條錯誤消息

數據讀取器與指定的“ResultName”不兼容。 類型為“XML_F52E2B61_18A1_11d1_B105_00805F49916B”的成員在數據讀取器中沒有相應的具有相同名稱的列。

因此,因為我使用復雜類型收到錯誤消息,所以我決定嘗試將結果更改為標量:字符串。

我現在在輸出窗口中獲得的內容(使用System.Diagnostics.Debug.WriteLine("objectName") )是:

(System.Data.Entity.Core.Objects.ObjectResult`1[System.String])

如果我嘗試對結果做任何事情,我會收到錯誤消息,如果我foreach或結束它我得到一個錯誤

從物化的“System.Int32”類型到“System.String”類型的指定強制轉換無效

這到底是什么意思? (事實上​​,如果我只對返回的對象執行.Count() ,我會得到相同的錯誤消息)

所以我想我最緊迫的問題是:我如何通過存儲過程從SQL Server獲取XML結果?

注意 :我不是在談論數據庫中的XML列,我在談論將查詢結果作為XML返回。

任何幫助將不勝感激。

謝謝,

蒂姆

對於那些感興趣的人,這個問題與我正在處理的4個不同的SQL Server實例(Local,Dev,Stage,Prod)有關,我使用了不正確的實例來獲取這些信息。

我創建了一個返回XML的存儲過程,我將其添加到Local實例,然后當我運行我的測試應用程序時,我期待Dev獲取信息。 由於存儲過程不存在,我收到錯誤。 很抱歉這個長期的問題最終被注意到但是我犯了一個錯誤。

衛生署。

謝謝,T

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM