Не удается сохранить XmlDocument в столбце таблицы с типом данных «xml» - PullRequest
0 голосов
/ 15 апреля 2009

В настоящее время я работаю над небольшим веб-приложением, использующим Visual Studio 2008 Express. Я пытаюсь получить 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 как есть без какой-либо дополнительной обработки.

Ответы [ 3 ]

2 голосов
/ 15 апреля 2009

Вы должны использовать XDocument, а не XmlDocument, а затем попытаться назначить XDocument непосредственно своему свойству oLog.InfoXML.

Не зная, как работает oClient.GetDataAsXML (), не ясно, сможете ли вы легко создать XDocument из этого вызова, но ваша жизнь станет проще, если вы будете работать с XDocument вместо XmlDocument.

1 голос
/ 15 апреля 2009

Вот отличный пост об этом . По сути, у вас есть новые типы XML и старые типы XML, конфликтующие там.

0 голосов
/ 28 декабря 2010

Вы также можете переключить свой проект с .net 3.5 на 3.0, который по умолчанию вернет вас к system.xml. Но это избавит вас от использования LINQ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...