如何检查列表包含Linq to sql中的多个值

时间:2011-07-18 23:43:16

标签: c# linq-to-sql

在我的应用程序中,我遇到了查询问题。

我正在尝试运行具有多个条件值的查询。

IQueryable<DealsDetails> DD = (from D in DbContext.Deals
                                        where lst.Contains(D.DealCategory) 
                                        select D);

我有这个查询,而且它将包含以下值:

lst.Add("Other");
        lst.Add("Services");

D.DealCategory包含这样的值。

Other,Beauty,Services
Beauty,Services,
Services
Other,
Beauty
Other,Services

我需要表中包含该列表中任何项目的所有行。表示包含其他和服务的所有行。

结果是

其他,美容,服务     美容,服务,     服务     其他     其他,服务

排除美女排。

请建议我如何撰写此查询。

首次修改

我需要所有那些DealCategory列包含列表中任何项目的行。

由于

1 个答案:

答案 0 :(得分:0)

使用两个列表进行连接,并仅返回第一个列表中的元素:

IQueryable<DealsDetails> DD = from D in DbContext.Deals
                              join C in lst
                                on D.DealCategory equals C
                              select D;

编辑:正如@Muhammad所说,这不会有效,因为这些交易都在Db中,并且lst在内存中,但如果您可以过滤lst,我会在那里修改一个答案直接在服务器上的项目:

IQueryable<DealsDetails> DD = from D in DbContext.Deals
                              join C in DbContext.DealCategories
                                on D.DealCategory equals C
                              where [Clauses to filter Cs]
                              select D;