1

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

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

4

1 回答 1

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);
}
于 2013-02-19T15:41:32.230 回答