Предполагая, что у нас есть следующая таблица:
Person:
PersonID,
Name,
Age,
Gender
И мы предоставляем функцию поиска, которая позволяет пользователям искать в таблице по имени и / или по возрасту.
Сложность при написании запроса SQL (или LINQ) заключается в том, что пользователи могут выбрать поиск как по одному полю, так и по любому одному полю или без поля. Если он хочет найти все, ему нужно просто оставить текстовое поле пустым.
Логика для этого может быть записана следующим образом:
var p;
if(Name_TextBox=='')
{
p=from row in person
select row ;
}
else
{
p= from row in person
where row.Name=Name_TextBox
select row ;
}
// repeat the same for age
Теперь через некоторое время код становится очень длинным и запутанным ... Как я могу сжать вышеприведенный запрос в один запрос с no if-else ?