Я знаю, что типичный способ таков:
IQueryable query = from staff in dataContext.Staffs;
if(name1 != null)
{
query = from staff in query where (staff.name == name1);
}
Однако из программы, которую мы взяли у других разработчиков, мы увидели такой код:
IQueryable query = from staff in dataContext.Staffs;
query = from staff in query where (name1 == null || staff.name == name1);
Если это нормальный оператор SQL, я бы определенно сказал, что второй - это плохая практика. Поскольку он добавляет бессмысленное предложение where к запросу, когда name1 имеет значение null.
Но я новичок в LINQ, поэтому я не уверен, что LINQ отличается?