在 UI 中,有一个为参数“字段”取值的下拉菜单。它可以是一个特定的值,或者“全部”是默认值,其中需要检索所有行而不考虑“字段”值。
如何在 LINQ 中编写 Where 子句,以便如果用户为字段列提供值,则将其用作过滤器,否则从数据库中获取所有行?
在 UI 中,有一个为参数“字段”取值的下拉菜单。它可以是一个特定的值,或者“全部”是默认值,其中需要检索所有行而不考虑“字段”值。
如何在 LINQ 中编写 Where 子句,以便如果用户为字段列提供值,则将其用作过滤器,否则从数据库中获取所有行?
您可以将IQueryable<T>
其用作 LINQ 查询的基础并附加到您需要的所有内容:
例子:
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();
}