LINQ: adding where clause only when a value is not null

后端 未结 10 954
花落未央
花落未央 2020-12-15 17:38

I know a typical way is like this:

IQueryable query = from staff in dataContext.Staffs;
if(name1 != null)
{
     query = from staff in query where (staff.nam         


        
10条回答
  •  萌比男神i
    2020-12-15 18:23

    you can write it like

    IQueryable query = from staff in dataContext.Staffs;
    query = from staff in query where (name1 != null && staff.name == name1);
    

    This way second part of your condition will not be evaluated if your first condition evaluates to false

    Update:
    if you write

    IQueryable query = from staff in dataContext.Staffs;
        query = from staff in query where (name1 == null || staff.name == name1);
    

    and name1 is null second part of your condition will not be evaluated since or condition only requires one condition to return true

    plz see this link for further detail

提交回复
热议问题