Поиск в базе данных с помощью поиска Opeands (например, больше, меньше, между, ...) - PullRequest
1 голос
/ 11 марта 2020

Я использую критерии классов для базы данных поиска в ado. net. Например, для поиска пользователей в БД я использую класс UserSearchCriteria для поиска с такими операндами, как «как», «между», «больше чем», «меньше чем» ... Например, поиск Имя пользователя содержит, DisableCount больше чем и Id точно соответствовать так далее.

В настоящее время вызов функции поиска:

   var users = userManager.Search(new UserSearchCriteria() { Id = new 
   Dictionary<int,OperandTypeEnum>(1,OperandTypeEnum.ExactMatch),
   Username = new Dictionary<string, OperandTypeEnum>("John Doe",OperandTypeEnum.Like),
   DisableCount = new Dictionary<int, OperandTypeEnum>(5,OperandTypeEnum.GreaterThan)});

Вопрос в том, есть ли лучший вариант для поиска с операндами? Потому что упрощенная функция поиска звонков была бы лучше.

public enum OperandTypeEnum
{
    ExactMatch=0, // default
    Like,
    GreaterThan,
    LessThan,
    Between
}

public class UserSearchCriteria
{
    public Dictionary<int?,OperandTypeEnum>  Id { get; set; }

    public Dictionary<string, OperandTypeEnum> Username { get; set; }

    public Dictionary<int, OperandTypeEnum> DisableCount { get; set; }
}
...