VB.net linq .contains在XML列上

时间:2015-11-24 09:22:17

标签: sql xml vb.net linq

我有一个数据库,其中包含一个名为Results的XML列。 此列包含工厂测试的结果和不同的XML格式,具体取决于执行的测试。

我正在开发一个GUI,我可以在其中浏览我的结果,因此我需要动态过滤此列。

我的第一个想法是使用Results.contains("myfilter"),但这似乎不起作用。

我正在使用带有linq和实体的Visual Studio 2015。

这是我的疑问:

Using context As New Entities
    Dim query = From tr In context.TestResults
                Join t In context.Tests On a Equals tr.Tests
                Join ts In context.TestStations On ts Equals tr.TestStations
                Join ut In context.UnitTraveler On ut Equals tr.UnitTraveler
                Where t.Id = TestID
                Where ts.Id = TestStationID
                Where tr.Results.Contains("TestCurrent")
                Take Count
                Select ut.SerialNumber, ut.ModelString, ut.Passed, tr.Results, tr.StartedOn, tr.EndedOn
                Order By StartedOn Descending
End Using

2015-12-01更新:我还没有找到解决方案。有没有人有想法?

1 个答案:

答案 0 :(得分:0)

如果Results属性的类型为String,并且您在此字符串中搜索特定子字符串,则可以使用此字符:

query = (From tr In ... Where tr.Results Like "*TestCurrent*")

如果结果是集合或列表

query = (From tr In ... Where tr.Results.Find(Function(f As Result) f.Contents Like "*TestCurrent*") IsNot Nothing)

请根据您的班级名称和属性更改用过的词语结果和内容。