Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';t将XmlDocument存储在数据类型为'的表列中;xml';_C#_Sql Server_Asp.net Mvc_Xml_Linq - Fatal编程技术网

C# Can';t将XmlDocument存储在数据类型为'的表列中;xml';

C# Can';t将XmlDocument存储在数据类型为'的表列中;xml';,c#,sql-server,asp.net-mvc,xml,linq,C#,Sql Server,Asp.net Mvc,Xml,Linq,我目前正在使用VisualStudio2008Express开发一个小型web应用程序。我试图使用客户端库从服务器检索XML文档,然后将文档保存到数据库列中(使用Linq)。数据库列的数据类型指定为xml。不幸的是,我在最初几次尝试中都失败了 假设我已经获得了对数据上下文对象的引用,下面是我尝试执行的基本操作: // using a client library, requestthe XML document from the server XmlDocument oXmlDoc = oCli

我目前正在使用VisualStudio2008Express开发一个小型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,您的生活会更轻松。

您应该考虑使用XDocument而不是XmlDocument,然后尝试将XDocument直接分配给oLog.InfoXML属性


在不知道oClient.GetDataAsXML()如何工作的情况下,不清楚您是否可以通过该调用轻松创建XDocument,但如果您使用XDocument而不是XmlDocument,您的生活会更轻松。

。基本上,新的XML类型和旧的XML类型在这里相互冲突。

。基本上,新的XML类型和旧的XML类型会发生冲突。

您还可以将项目从.net 3.5切换到3.0,这将默认您返回到
system.XML
。但这将使您不再使用LINQ。

您还可以将项目从.net 3.5切换到3.0,这将默认返回到
system.xml
。但这会使您远离使用LINQ。

您看到的问题是什么?您是否尝试查看InnerXml以确保它是一个有效的文档,并且该文本可以存储在SQL中?我会使用Outerxml而不是InnerXml。您看到了什么问题?您是否尝试查看InnerXml以确保它是一个有效的文档,并且该文本可以存储在SQL中?我会使用Outerxml而不是InnerXml。非常感谢-这最终让我走上了正确的道路。客户端返回一个XmlDocument,所以我在返回的XmlDocument的OuterXml字符串上使用了XDocument.Parse()。非常感谢-这让我走上了正确的道路。客户端返回一个XmlDocument,所以我在返回的XmlDocument的OuterXml字符串上使用了XDocument.Parse()。@JP-谢谢您的链接。很高兴将此作为参考,因为它有助于解释我所经历的冲突。@JP-感谢链接。很高兴将此作为参考,因为它有助于解释我所经历的冲突。使用较旧版本的.net不会导致其他问题吗?这是处理此问题的常用方法吗?使用较旧版本的.net不会导致其他问题吗?这是处理这一问题的常见方法吗?