Я использую Linq to Sql с Predicate Builder и пытаюсь оптимизировать объем информации, получаемой из базы данных. Я хотел бы выбрать только определенные поля для отображения их в виде сетки. Когда я выбираю только то, что хочу, параметры поиска, которые я добавляю (см. Ниже), не работают, как и PredicateBuilder. Вот что я сейчас делаю (это работает, но получает ВСЕ, что слишком много информации)
' Initial Setup '
Dim db As New MyDataContext()
Dim results = From p In db.Products _
Select p
' Search '
If (testCase) Then
results = results.Where(Function(p) p.SomeAttribute = 123)
End If
Если я изменю это, чтобы выбрать только то, что мне нужно, например:
Dim results = From p In db.Products _
Select p.Name, p.SomethingElse
тогда я заметил, что если информация выбрана (т.е. я выбираю p.SomeAttribute), тогда я могу искать (добавить предложение where) по этому атрибуту, но если нет, я не могу. И с помощью построителя предикатов это работает, только если я выбираю весь элемент (то есть выбираю p). Все, что нужно сделать, это создать операторы SQL, которые не должны выбирать атрибут для поиска по нему. Как я могу заставить это работать и выбирать только то, что мне нужно, но искать по чему-либо и поддерживать работу prediate builder? Любая помощь очень ценится! Спасибо