簡體   English   中英

無法將XmlDocument存儲在數據類型為“ xml”的表列中

[英]Can't store XmlDocument in table column with data type 'xml'

我目前正在使用Visual Studio 2008 Express開發小型Web應用程序。 我正在嘗試使用客戶端庫從服務器檢索XML文檔,然后將文檔保存到數據庫列中(使用Linq)。 數據庫列的數據類型指定為xml 不幸的是,我在最初的幾次嘗試中都沒有成功。

假設我已經獲得了對數據上下文對象的引用,這是我要嘗試執行的操作的基礎知識:

// using a client library, requestthe XML document from the server
XmlDocument oXmlDoc = oClient.GetDataAsXML();

InformationLog oLog = new InformationLog();
oLog.InfoXML = oXmlDoc.InnerXml; // this is where the problem occurs

dbContext.InformationLogs.InsertOnSubmit(oLog);
dbContext.SubmitChanges();

具體來說,我得到的錯誤是:

Cannot implicitly convert type 'System.Xml.XmlNode' to 'System.Xml.Linq.XElement'

我是ASP.NET MVC和Linq的新手,所以我知道我缺少一些東西。 除了答案之外,我還很好奇為什么不進行任何其他處理就不可能簡單地按原樣保存XML。

您應該使用XDocument而不是XmlDocument,然后嘗試將XDocument直接分配給您的oLog.InfoXML屬性。

不知道oClient.GetDataAsXML()如何工作還不清楚是否可以通過該調用輕松創建XDocument,但是如果您使用XDocument而不是XmlDocument進行工作,將會更加輕松。

這是一篇很棒的文章 基本上,這里有新的XML類型和舊的XML類型沖突。

您還可以將項目從.net 3.5切換到3.0,這會將您默認返回到system.xml 但這將使您擺脫使用LINQ的麻煩。

暫無
暫無

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

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