繁体   English   中英

使用 LINQ to EF 进行高级搜索

[英]Advanced search with LINQ to EF

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

我计划动态构建 where 子句,但似乎这行不通: 在 LINQ to EF 查询中构建动态 where 子句

只需建立您的查询。 如果您有一系列 Where 调用,则这些调用是 AND 运算的。

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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM