Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

LINQ :ajout de la clause where uniquement lorsqu'une valeur n'est pas nulle

vous pouvez l'écrire comme

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

De cette façon, la deuxième partie de votre condition ne sera pas évaluée si votre première condition est évaluée comme fausse

Mise à jour :
si vous écrivez

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

et name1 est null la deuxième partie de votre condition ne sera pas évaluée puisque or condition ne nécessite qu'une seule condition pour retourner true

plz voir ce lien pour plus de détails