相关疑难解决方法(0)

LINQ:仅当值不为null时才添加where子句

我知道一种典型的方式是这样的:

IQueryable query = from staff in dataContext.Staffs;
if(name1 != null)
{
     query = from staff in query where (staff.name == name1);
}
Run Code Online (Sandbox Code Playgroud)

但是,从我们从其他开发人员手中接过的程序中,我们看到了这样的代码:

IQueryable query = from staff in dataContext.Staffs;
query = from staff in query where (name1 == null || staff.name == name1);
Run Code Online (Sandbox Code Playgroud)

如果这是一个普通的SQL语句,我肯定会说第二个是不好的做法.因为当name1为null时,它会向查询添加无意义的where子句.

但我是LINQ的新手,所以我不确定LINQ是否有所不同?

c# linq asp.net performance sql-server-2008

22
推荐指数
3
解决办法
6万
查看次数

标签 统计

asp.net ×1

c# ×1

linq ×1

performance ×1

sql-server-2008 ×1