Я работаю над ASP.NET MVC приложением, которое использует шаблон хранилища с LINQ to SQL в качестве источника данных В моем хранилище я выставляю следующий метод:
public IEnumerable<T> Find(Expression<Func<T, bool>> where)
{
return _context.GetTable<T>().Where(where);
}
Я могу назвать это, сказав:
repository<User>().Find(u => true);
Но если я попытаюсь сделать (когда поиск пуст)
repository<User>().Find(u => !string.IsNullOrEmpty(search) ? u.UserName.Contains(search) : true);
Я получаю ошибку:
Значение не может быть нулевым. Имя параметра: текст
Я думал, что лямбда-выражение будет выполнять то же самое, поскольку значение поиска равно нулю, но это явно не тот случай.
Как мне решить эту проблему?