c# - Appending .Where(..) to a Linq.IQueryable -


i building linq iqueryable , want add different .where() argument depending on condition. @ runtime appended .where() doesn't seem taken account. done wrong?

var query = context.sessions    .where(s => s.userid.equals(currentuserid))    .where(s => s.closedtime.hasvalue)    .where(s => !s.approvedtime.hasvalue);  if (type == models.environmenttype.a) {    query.where(s => s.bedroomid.hasvalue); } else if (type == models.environmenttype.b) {    query.where(s => s.homeid.hasvalue); } 

thank you!

you need assign returning result query.where creates new query, doesn't change original one.

query = query.where(s => s.bedroomid.hasvalue); 

Comments