UI には、パラメーター「フィールド」の値を取るドロップダウンがあります。特定の値にすることも、「すべて」がデフォルトで、「フィールド」値に関係なくすべての行を取得する必要があります。
ユーザーがフィールド列の値を指定した場合、それをフィルターとして使用し、それ以外の場合は DB からすべての行を取得するように、LINQ で Where 句を作成するにはどうすればよいですか?
UI には、パラメーター「フィールド」の値を取るドロップダウンがあります。特定の値にすることも、「すべて」がデフォルトで、「フィールド」値に関係なくすべての行を取得する必要があります。
ユーザーがフィールド列の値を指定した場合、それをフィルターとして使用し、それ以外の場合は DB からすべての行を取得するように、LINQ で Where 句を作成するにはどうすればよいですか?
LINQ クエリのベースとして使用IQueryable<T>
し、必要なすべてを追加できます。
例:
string userInput = "";
using (var context = new EntityModel())
{
IQueryable<MyEntity> query = context.MyEntities;
if (!String.IsNullOrWhiteSpace(userInput))
query = query.Where(x => x.MyFilterableProperty == userInput);
return query.ToList();
}