У меня есть несколько C# бизнес-класса выглядит следующим образом:дизайна класса для фильтра выражений
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public string DepartmentCode { get; set; }
public string HireDate { get; set; }
public DateTime DateOfBirth { get; set; }
public DateTime Gender { get; set; }
}
public class EmployeeManagement
{
public List<Employee> GetEmployees(FilterExpression criteria)
{
throw new System.NotImplementedException();
}
}
Цель состоит в том, чтобы получить список сотрудников, передавая различные условия фильтра, например, всех сотрудников, принадлежащих к определенному отделу, или нанятых после определенной даты или всех женщин-сотрудников или комбинации критериев (включая условия И или ИЛИ). Я не хочу реализовывать многие перегруженные методы для каждого из критериев фильтра, поскольку конечные пользователи определяют критерии фильтра, и я не могу принять все возможные случаи.
Не могли бы вы помочь в разработке класса «FilterExpression», который я могу передать методу GetEmployees? Любое другое предложение альтернативного подхода будет приветствоваться.
Спасибо.
Подробнее: Данные сотрудника хранятся в таблице БД. Я не хочу привлекать всех сотрудников в List<Employee>
, а затем фильтровать данные. Моя цель состоит в том, чтобы генерировать предложение «where where» SQL из выражения фильтра, так что из самой базы данных я получаю отфильтрованный набор данных Employee. Я борюсь с классом класса FilterExpression, как указано выше.
Как вы собираетесь интерпретировать FilterExpression? Вы собираетесь преобразовать его в sql? Или вы применяете фильтр к списку объектов? –
Вы собираетесь использовать такой запрос, как синтаксис, или представляете пользователям список вариантов, на которые они могут выбрать? – devnull
В пользовательском интерфейсе я намереваюсь представить список параметров фильтра, которые они могут выбрать для нескольких вариантов с объединениями «И» или «Или». –