1

最大 4 つの値があります: 文字列 firstName、文字列 lastName、文字列 ssn、DateTime dateOfInjury。ユーザーは、これらのいずれか、または任意の組み合わせを入力できます。複数入力する場合はANDで結果を返したい。たとえば、firstName が一致する場所 (それだけを入力する場合)、または firstName と 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 に答える