2011-05-02 78 views
1

使用Lambda表达式和在节流使用Lambda表达式和在节流

我有一个查询,我想基于一个字段的值来限制的结果,如果它包含在值列表。

public List<Client> GetClientsByExtractIds(List<Guid> extractIds) 
    { 
     AJGDMSStagingContext context = new AJGDMSStagingContext(STAGING_CONNECTION_STRING); 

     return context.Clients.ToList(); 
    } 

所以它需要是这样的:Clients.ExtractId.Contains(ExtractIds)

一种选择我是获得所有客户端,然后只需通过所有的人都骑自行车在内存,​​但我宁愿直接从得到它D B。

+2

什么是“限制器”? – SLaks 2011-05-02 18:11:22

+0

你的数据来自何方? – SLaks 2011-05-02 18:11:41

+0

限制器....在(extractId1,extractId2,extractId3) – 2011-05-02 18:43:11

回答

3
return context.Clients.Where(c => extractIds.Contains(c.ExtractId)).ToList(); 
+1

要补充说明:出于性能考虑,我将'extractIds'声明为'HashSet'。但无论如何,这是微观优化。 – 2011-05-02 18:14:03

+0

宾果。我没有意识到像所有事情一样,它只是显得有些倒退。我运行了剖析器,可以看到它的位置“[t0]。[ExtractId] IN(@ p0)'” – 2011-05-02 18:42:34