2015-09-14 4 views
0

Я пытаюсь получить XMl из базы данных SQL, используя CAST с запросом.Использование SQL «CAST» в LINQ

Это, как я пытался заставить его работать:

string str = db.Database.SqlQuery<string>("SELECT CAST(CAST(Content AS VARBINARY(MAX)) AS XML) AS DashboardXML FROM ReportServer$SRVSQL2012.dbo.Catalog WHERE Name = 'DannyTest.xml'").FirstOrDefault<string>(); 

Но это действительно не работает, как и все < и > прибудете-х заменены &lt и &gt.

Как выполнить такую ​​задачу с помощью чистого LINQ? Можно ли это сделать?

EDIT

Я даже не уверен, если это проблема службы или что это такое, что на самом деле заменяет < и >?

ПРИМЕР РЕЗУЛЬТАТ

&lt;Dashboard CurrencyCulture="da-DK"&gt 

должно быть

<Dashboard CurrencyCulture="da-DK"> 

ответ

0

решаемые

Вместо использования XElement.load("whatever") я использовал XElement.Parse("whatever") с момента выхода из заявления LINQ является строка.

Как так:

XElement xelement = XElement.Parse(
    db.Database.SqlQuery<string>(
     "SELECT CAST(CAST(Content AS VARBINARY(MAX)) AS XML) 
     AS DashboardXML FROM ReportServer$SRVSQL2012.dbo.Catalog WHERE Name = 'DannyTest.xml'") 
    .FirstOrDefault<string>()); 

Таким образом, строка был правильно преобразовать в читаемый XML