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

本文关键字:sql to 包含多 Linq 何检查 检查 列表 | 更新日期: 2023-09-27 18:02:56

在我的应用程序中,我有一个查询问题。

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

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

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

结果

其他,美丽,服务美、服务服务其他其他服务

不包括美容行。

请告诉我如何写这个查询。

第一次编辑

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

谢谢

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

对两个列表进行连接,并且只返回第一个列表中的元素:

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

编辑:正如@Muhammad所说,这将不起作用,因为交易在数据库中,列表在内存中,但如果您可以直接在服务器上过滤列表项,我会在那里修改答案:

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;