2016-03-22 16 views

Antwort

1

Sie können die .Contains-Methode verwenden, um zu überprüfen, ob ein Wert innerhalb einer Liste ist.

var values = new List<string>() { "Prod1", "Prod2", "Prod3" }; 
var query = context.Set<Product>().Where(x => values.Contains(x.Name)); 
+0

danke für die antwort – user6100258

0

Sie so etwas wie verwenden könnte (dies ist VB.Net, wechseln Sie in C#, falls erforderlich)

Dim result = products.Where(Function(p) p.ID = "product1" Or p.ID = "product2" Or p.ID = "product3", ...) 

Alternativ können Sie sie alle zurück an den Client ziehen und .Contains verwenden, etwa so:

Dim materializedProducts = products.ToList() 
Dim result = materializedProducts.Where(Function(p) {"product1", "product2", "{product3}", ...}.Contains(p.ID)) 

geht noch weiter, könnten Sie eine Erweiterungsmethode (generisch, wenn das Ihr Boot schwimmt) schaffen genannt isin oder ähnliches, die die Reihenfolge der Sammlung tauschen können und der Suchwert:

<Extension()> 
Public Function IsIn(Of T)(ByVal searchValue As T, 
          ByVal searchSet As IEnumerable(Of T)) 
    Return searchset.Contains(searchValue) 
End Sub 


Dim materializedProducts = products.ToList() 
Dim result = materializedProducts.Where(Function(p) p.ID.IsIn({"product1", "product2", "{product3}", ...})) 
+0

danke für die antwort – user6100258

Verwandte Themen