Запрос Linq - множественный где, с методом расширения - PullRequest
0 голосов
/ 20 апреля 2010

Мой код работает для OR, как я перечислил ниже, но я хочу использовать AND вместо OR, и он не работает. Я не совсем уверен, что я делаю не так. По сути, у меня есть запрос Linq, который выполняет поиск по нескольким полям в файле XML. Не все поля поиска могут содержать информацию. Каждый элемент запускает метод расширения и проверяет равенство. Любой совет будет оценен.

refinedresult = From x In theresult _
                        Where x.<thelastname>.Value.TestPhoneElement(LastName) Or _
                        x.<thefirstname>.Value.TestPhoneElement(FirstName) Or _
                        x.<id>.Value.TestPhoneElement(Id) Or _
                        x.<number>.Value.TestPhoneElement(Telephone) Or _
                        x.<location>.Value.TestPhoneElement(Location) Or _
                        x.<building>.Value.TestPhoneElement(building) Or _
                        x.<department>.Value.TestPhoneElement(Department) _
                        Select x



Public Function TestPhoneElement(ByVal parent As String, ByVal value2compare As String) As Boolean
    'find out if a value is null, if not then compare the passed value to see if it starts with
    Dim ret As Boolean = False

    If String.IsNullOrEmpty(parent) Then
        Return False
    End If
    If String.IsNullOrEmpty(value2compare) Then
        Return ret
    Else
        ret = parent.ToLower.StartsWith(value2compare.ToLower.Trim)
    End If

    Return ret
End Function

Обновление Я разобрался, что именно вызывает проблему. Я до сих пор не уверен, как это исправить. В основном любые пропущенные пустые строки вызывают сбой операции. Однако, если все (фамилия, имя и т. Д.) Имеют критерии, это работает. Есть идеи?

1 Ответ

1 голос
/ 20 апреля 2010

Кажется, что один из методов тестирования выдает исключение. При использовании ИЛИ ошибочный метод теста, по-видимому, не вызывается.

Попытайтесь выяснить, какой из них выходит из строя, возможно, из-за того, что проверяемое значение имеет значение null или непредвиденного типа.

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