【问题标题】:Advanced search with LINQ to EF使用 LINQ to EF 进行高级搜索
【发布时间】:2013-02-19 15:36:11
【问题描述】:

我最多有 4 个值:字符串 firstName、字符串 lastName、字符串 ssn、DateTime dateOfInjury。用户可以输入其中任何一种或任何组合。如果他们输入多个,我想使用 AND 返回结果。例如,如果 firstName 匹配(如果他们输入的就是这些),或者如果 firstName AND lastName 匹配,如果他们同时输入,等等。使用 LINQ 执行此操作的最佳方法是什么?我希望有比巨大的 switch 语句更优雅的东西。

我正计划动态构建 where 子句,但它似乎不起作用:Building dynamic where clauses in LINQ to EF queries

【问题讨论】:

    标签: linq search


    【解决方案1】:

    只需建立您的查询。如果你有一系列的 Where 调用,它们会被 AND'd 在一起。

    IQueryable<Customer> query = source.Customers;
    
    if (firstName != null)
    {
      query = query.Where(c => c.FirstName == firstName);
    }
    if (lastName != null)
    {
      query = query.Where(c => c.LastName == lastName);
    }
    

    【讨论】:

    • 啊。那么结果集只是随着每个查询而进一步减少吗?我从来没有想到过。我试试看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 2011-05-12
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 2016-03-20
    • 1970-01-01
    相关资源
    最近更新 更多