【发布时间】:2014-10-02 02:47:53
【问题描述】:
我的 Microsoft SQL Server 表的其中一列包含格式为 XML 的字符串
<root>
<de><![CDATA[something]]></de>
<fr><![CDATA[something]]></fr>
<it><![CDATA[something]]></it>
<en><![CDATA[something]]></en>
</root>
或
<root>
<de>something</de>
<it>something</it>
<fr>something</fr>
<en>something</en>
</root>
我需要提取所有包含某个单词的记录,无论是否有CDATA。
所以我以这种方式在 LINQ 中构造了 where 条件:
vc.Url.Contains(">" + URL + "<") || vc.Url.Contains("cdata[[]" + URL + "]")
如果搜索文本匹配且没有 CDATA,则 where 条件有效,我得到结果。
如果搜索文本匹配并且存在 CDATA,则 where 条件不起作用。
如果我通过 SQL Server Management Studio 执行查询:
where vc.Url like '%>something<%' OR vc.Url like '%cdata[[]something]%'
我得到了预期的结果。
知道如何以正确的方式编写 where 条件并通过 SQL 和 LINQ 获得相同的结果吗?
提前致谢!
【问题讨论】:
标签: c# sql-server linq cdata