使用SQL" CAST"在LINQ内

时间:2015-09-14 07:38:15

标签: sql entity-framework linq wcf

我试图从我的SQL数据库中获取XMl,使用CAST查询。

这就是我试图让它发挥作用的方式:

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完成此类任务?它甚至可以完成吗?

修改

我甚至不确定这是服务问题还是实际取代<>的内容?

结果示例

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

应该是

<Dashboard CurrencyCulture="da-DK">

1 个答案:

答案 0 :(得分:0)

<强>解决

由于LINQ语句的输出是一个字符串,而不是使用XElement.load("whatever")我使用XElement.Parse("whatever")

像这样:

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