動的 LINQ ファイル (dynamic.cs) を使用して、次のアプローチを使用して動的クエリを作成しています。
Dim qs As New List(Of KeyValuePair(Of String, Object))
qs.Add(New KeyValuePair(Of String, Object)("Price >= @", 10))
qs.Add(New KeyValuePair(Of String, Object)("Price <= @", 50))
qs.Add(New KeyValuePair(Of String, Object)("GoLive= @", False))
qs.Add(New KeyValuePair(Of String, Object)("Format = @", "DVD"))
qs.Add(New KeyValuePair(Of String, Object)("Format = @", "BLR"))
Dim products = From p In data.Products
Select p
For Each q In qs
products = products.Where(q.Key, q.Value)
Next
Dim results = products.ToList
これは期待どおりに機能しますが、「フォーマット」フィールドのように「DVD」と「BLR」の両方を探していることがわかりますか? これは、両方ではなく、両方のオプションを照会します。
上記のクエリ作成方法を使用して、何らかの方法でいずれかのオプションをクエリする方法はありますか、それとも「フォーマット」フィールドを次のように組み合わせるのが最善でしょうか:
qs.Add(New KeyValuePair(Of String, Object)("Format = @ OR Format = ", both options here))