Я только что прочитал недавний вопрос о , используя условные выражения в Linq , и он напомнил мне о проблеме, которую мне не удалось решить. При программной сборке запросов Linq to SQL, как это можно сделать, если число условий не известно до времени выполнения?
Например, в приведенном ниже коде первое предложение создает IQueryable, который в случае выполнения выберет все задачи (называемые проблемами) в базе данных, а второе предложение уточнит это так, чтобы оно просто относилось к проблемам, назначенным одному отделу, если он выбранный в выпадающем списке (у которого выбранный элемент привязан к свойству DepartmentToShow).
Как я могу сделать это, используя вместо этого коллекцию selectedItems?
IQueryable<Issue> issuesQuery;
// Will select all tasks
issuesQuery = from i in db.Issues
orderby i.IssDueDate, i.IssUrgency
select i;
// Filters out all other Departments if one is selected
if (departmentToShow != "All")
{
issuesQuery = from i in issuesQuery
where i.IssDepartment == departmentToShow
select i;
}
Кстати, приведенный выше код упрощен, в реальном коде есть около десятка предложений, которые уточняют запрос на основе настроек поиска и фильтрации пользователей.