Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

LINQ:adicionando cláusula where somente quando um valor não é nulo


você pode escrever como
IQueryable query = from staff in dataContext.Staffs;
query = from staff in query where (name1 != null && staff.name == name1);

Desta forma, a segunda parte de sua condição não será avaliada se sua primeira condição for avaliada como falsa

Atualização:
se você escrever
IQueryable query = from staff in dataContext.Staffs;
    query = from staff in query where (name1 == null || staff.name == name1);

e name1 é nulo, a segunda parte da sua condição não será avaliada, pois ou condição requer apenas uma condição para retornar true

por favor veja este link para mais detalhes