2010-12-09 8 views
0

Ich habe ein Feld namens Land. Jetzt muss ich die Datensätze basierend auf dem passenden Land filtern.Lambda-Ausdruck für mehrere Länder in Linq zu Entität

Wenn ich die Datensätze für einzelnes Land filtern muss, verwende ich den Lambda-Ausdruck wie folgt.

string strCountry = "USA"; 
var data = entities.Documents.Where(p => p.Country == strCountry); 

Jetzt habe ich die Liste der Länder wie folgt. Ich frage mich, wie man die Datensätze für diese Contry-Liste filtern kann.

List<string> strCountry = new CacheUser().GetUserCountry(); 

Schätzen Sie Ihre Antworten.

Dank

Antwort

2

Versuchen:

List<string> countries = ...; 
var data = entities.Documents.Where(p => countries.Contains(p.Country)); 

Diese in einer "IN" Abfrage in SQL führen sollte. Sie sollten sich jedoch bewusst sein, dass dies fehlschlagen kann, sobald Sie eine große Anzahl von Ländern in der Liste haben. Ich nehme an, du kannst das nicht mit einem Join tun? Die Liste der Länder ist nur auf der Kundenseite bekannt?

Verwandte Themen