Здравствуйте, 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);
}