[英]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.