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
I've seen this pattern in standard SQL, and it seems useful if you have several parameters that may be NULL. For example:
SELECT * FROM People WHERE ( @FirstName IS NULL OR FirstName = @FirstName )
AND ( @LastName IS NULL OR LastName = @LastName )
If you see this in LINQ, it's possible they just blindly translated their old SQL-queries.