Я выяснил, как выполнять условные запросы с помощью linq для sql, и я также выяснил, как использовать OR where clauses. К сожалению, я не могу понять, как это сделать сразу. Я могу сделать условное где положение что-то вроде:Условно, где с или критериями linqtosql
var ResultsFromProfiles = from AllPeeps in SearchDC.aspnet_Users
select AllPeeps;
if (SearchFirstNameBox.Checked)
{
ResultsFromProfiles = ResultsFromProfiles.Where(p => p.tblUserProfile.FirstName.Contains(SearchTerm));
}
if (SearchLastNameBox.Checked)
{
ResultsFromProfiles = ResultsFromProfiles.Where(p => p.tblUserProfile.LastName.Contains(SearchTerm));
}
Это поможет мне любым профилям, где первое имя и фамилия содержит слово для поиска.
Или я мог бы сделать:
var ResultsFromProfiles = from p in SearchDC.aspnet_Users
where p.tblUserProfile.LastName.Contains(SearchTerm) ||
p.tblUserProfile.FirstName.Contains(SearchTerm)
select p;
Это принеси мне все профили, где первое имя или фамилия содержит условие поиска.
У меня есть набор флажков, в которых пользователь может указать, в каких полях они хотят искать поисковый запрос, поэтому я хочу иметь возможность создавать запрос, который условно добавит их, как в первом фрагменте кода выше, но добавьте их как OR, чтобы они работали как второй фрагмент. Таким образом, он будет искать любые соответствия в любом месте в указанных полях.
Любые советы?
OMG Я не знал об этом предикатаBuilder – Matias
Ох, это выглядит красиво. Особенно по сравнению с альтернативным предложением (см. Мою запись ниже) –
Блестящий, это именно то, что мне было нужно и очень просто/элегантно. Спасибо – Adam