Специальный фильтр LINQ или все - PullRequest
0 голосов
/ 04 ноября 2010

Я передаю модель фильтра в мой сервис. Пользователь может выбрать any, что является null или пустой строкой. Как настроить одноразовый .Where запрос, который будет игнорировать этот фильтр?

Пример:

public class UserFilterModel
{
    public string State {get; set;};
    public string Age {get; set;};
}

Фильтр: (Как мне сделать так, чтобы он лучше соответствовал моим потребностям?)

var result = context.Users.Where(u => u.State == filter.State && u.Age == filter.Age);

Так что, если пользователь выбирает ноль или пусто для State, он в настоящее время будет возвращать записи с нулевым или пустым состоянием, когда я на самом деле хочу игнорировать этот фильтр.

Кроме того, я использую asp.net mvc 2, если я делаю что-то не так, пожалуйста, скажите мне. Использование шаблона репозитория.

1 Ответ

1 голос
/ 04 ноября 2010

Вот один из способов:

var result = context.Users.Where(
    u => (String.IsNullOrEmpty(filter.State) || u.State == filter.State) &&
         (String.IsNullOrEmpty(filter.Age) || u.Age == filter.Age)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...