C# 条件Linq查询
我有一个dropdownlist,当选中它时,它会将数据从数据库中拉出。下拉列表中有许多选项,其中一个是“全部”。我希望当用户选择“All”选项时,它应该从数据库中取出所有内容。实现此功能的好方法是什么?检查值,如果不是“全部”,则仅执行Where语句C# 条件Linq查询,c#,linq-to-sql,C#,Linq To Sql,我有一个dropdownlist,当选中它时,它会将数据从数据库中拉出。下拉列表中有许多选项,其中一个是“全部”。我希望当用户选择“All”选项时,它应该从数据库中取出所有内容。实现此功能的好方法是什么?检查值,如果不是“全部”,则仅执行Where语句 使用LINQ,您可以在将查询发送到数据库之前轻松修改查询: IQueryable<Item> query = dataContext.Items; if (selectedText != "All") { query = q
使用LINQ,您可以在将查询发送到数据库之前轻松修改查询:
IQueryable<Item> query = dataContext.Items;
if (selectedText != "All")
{
query = query.Where(item => item.Type == selectedText);
}
List<Item> result = query.ToList();
IQueryable query=dataContext.Items;
如果(选择文本!=“全部”)
{
query=query.Where(item=>item.Type==selectedText);
}
列表结果=query.ToList();
或者,您可以在一个查询中写入它:
IQueryable<Item> query = dataContext.Items
.Where(item => selectedText == "All" || item.Type == selectedText);
IQueryable query=dataContext.Items
.Where(item=>selectedText==“All”| | item.Type==selectedText);
如果您经常动态构建查询,那么您可能想看看一个非常酷的Linq示例,“动态Linq库”。斯科特·古思里对此很有好感
编辑:注意,在这种特定情况下,因为您位于where子句的右侧,所以不需要完全动态,这可能会有些过分,但是如果您也在动态筛选,那么….或者可能是:query.where(item=>selectedText==“All”| | item.Type==selectedText);
IQueryable<Item> query = dataContext.Items
.Where(item => selectedText == "All" || item.Type == selectedText);