możesz to napisać jak
IQueryable query = from staff in dataContext.Staffs;
query = from staff in query where (name1 != null && staff.name == name1);
W ten sposób druga część twojego warunku nie zostanie oceniona, jeśli twój pierwszy warunek okaże się fałszywy
Aktualizacja:
jeśli piszesz
IQueryable query = from staff in dataContext.Staffs;
query = from staff in query where (name1 == null || staff.name == name1);
a name1 ma wartość null druga część twojego warunku nie zostanie oceniona, ponieważ warunek wymaga tylko jednego warunku do zwrócenia true
plz zobacz ten link więcej szczegółów