Re[3]: C# Extension для Queryable.Where
От: scale_tone Норвегия https://scale-tone.github.io/
Дата: 22.06.14 10:46
Оценка: 40 (3) +2
Здравствуйте, Alexandr Sulimov, Вы писали:

AS>А какой инструмент в этом случаее оптимальный?

AS>Для динамических фильтров (сортирвок) я как раз и вышел на Expression.

Можно, например, снабдить саму сущность методом, возвращающим выражение для поиска по ее текстовым полям:

public class User
{
    public int UserId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string MiddleName { get; set; }

    public static Expression<Func<User, bool>> GetFilterExpression(string filter)
    {
        return u =>
            u.FirstName.ToLower().Contains(filter)
            ||
            u.LastName.ToLower().Contains(filter)
        ;
    }
}


Так, по крайней мере, код понятен. И каждой сущности можно приделать по своему такому методу.

И тогда:
foreach (var u in db.Users.Where(Models.User.GetFilterExpression("a")))
{
    Debug.WriteLine(u.FirstName + " " + u.LastName);
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.