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

C# 如何在Linq to sql中检查包含多个值的检查列表,c#,linq-to-sql,C#,Linq To Sql,在我的应用程序中,我有一个查询问题 我正在尝试使用多个条件值运行查询 IQueryable<DealsDetails> DD = (from D in DbContext.Deals where lst.Contains(D.DealCategory) select D); D.DealCategory包含这样的值 Oth

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

我正在尝试使用多个条件值运行查询

IQueryable<DealsDetails> DD = (from D in DbContext.Deals
                                        where lst.Contains(D.DealCategory) 
                                        select D);
D.DealCategory包含这样的值

Other,Beauty,Services
Beauty,Services,
Services
Other,
Beauty
Other,Services
我需要表中包含该列表中任何项目的所有行。指包含其他和服务的所有行

结果是

其他、美容、服务 美容、服务、, 服务 另外 其他,服务

不包括美容街

请建议我如何编写此查询

第一次编辑

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


谢谢

加入两个列表,只返回第一个列表中的元素:

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;

与两个列表进行联接,并仅返回第一个列表中的元素:

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;

我怎么能总是忘记这个限制:-S我想我总是与DB或inmem一起工作,但不是同时与两者一起工作。谢谢你的回复,但这不是我想要的。我怎么能总是忘记这个限制:-S我想我总是与DB或inmem一起工作,但不是同时与两者一起工作。谢谢你的回复,但这不是我想要的。