2010-12-09 60 views
0

我有一个名为Country的字段。 现在我必须根据匹配的国家过滤记录。Linq to Entity中多个国家的lambda表达式

当我必须过滤单个国家的记录时,我使用下面的lambda表达式。

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

现在我有以下列表的国家。我想知道如何过滤这个Contry列表的记录。

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

欣赏您的回复。

感谢

回答

2

尝试:

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

这将导致SQL的 “IN” 的查询。但是,您应该意识到,一旦获得大量列表中的国家/地区,这可能会失败。我认为你不能用连接来做到这一点呢?国家名单只在客户端知道?