Predicate Builder で Linq to Sql を使用しており、データベースから取得する情報の量を最適化しようとしています。特定のフィールドのみを選択して、グリッドビューに表示したいと考えています。必要なものだけを選択すると、追加した検索パラメーター (以下を参照) が機能せず、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 を機能させ続けるにはどうすればよいですか? どんな助けでも大歓迎です!ありがとう