【问题标题】:How to Check List Contains with multiple values in Linq to sql如何在 Linq to sql 中检查列表是否包含多个值
【发布时间】:2011-10-08 02:49:16
【问题描述】:

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

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

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

我有这个查询,lst 将包含以下值:

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

而 D.DealCategory 包含这样的值。

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

我需要包含该列表中任何项目的表中的所有行。表示包含 Other 和 Services 的所有行。

结果是

其他、美容、服务 美容、服务、 服务 其他 其他、服务

不包括美女排。

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

首次编辑

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

谢谢

【问题讨论】:

    标签: c# linq-to-sql


    【解决方案1】:

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

    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 OR inmem,但不能同时使用两者。
    • 感谢您的回复,但这不是我想要的。
    猜你喜欢
    • 2013-02-08
    • 1970-01-01
    • 2020-10-08
    • 2012-07-24
    • 1970-01-01
    • 2012-09-17
    • 2019-01-07
    • 1970-01-01
    • 2011-05-05
    相关资源
    最近更新 更多