Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 条件Linq查询_C#_Linq To Sql - Fatal编程技术网

C# 条件Linq查询

C# 条件Linq查询,c#,linq-to-sql,C#,Linq To Sql,我有一个dropdownlist,当选中它时,它会将数据从数据库中拉出。下拉列表中有许多选项,其中一个是“全部”。我希望当用户选择“All”选项时,它应该从数据库中取出所有内容。实现此功能的好方法是什么?检查值,如果不是“全部”,则仅执行Where语句 使用LINQ,您可以在将查询发送到数据库之前轻松修改查询: IQueryable<Item> query = dataContext.Items; if (selectedText != "All") { query = q

我有一个dropdownlist,当选中它时,它会将数据从数据库中拉出。下拉列表中有许多选项,其中一个是“全部”。我希望当用户选择“All”选项时,它应该从数据库中取出所有内容。实现此功能的好方法是什么?

检查值,如果不是“全部”,则仅执行Where语句


使用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);