使用LINQ to EF进行高级搜索

时间:2013-02-19 15:36:11

标签: linq search

我最多有4个值:string firstName,string lastName,string ssn,DateTime dateOfInjury。用户可以输入这些或任何组合中的任何一个。如果他们输入多个,我想使用AND返回结果。例如,firstName匹配(如果这是他们输入的全部),或者如果firstName和lastName匹配,如果他们同时输入它们,依此类推。使用LINQ执行此操作的最佳方法是什么?我希望有一个更优雅的东西,一个巨大的转换声明。

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

1 个答案:

答案 0 :(得分:2)

只需构建您的查询即可。如果你有一系列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);
}