У меня есть общий метод, который должен возвращать IEnumerable из чего-либо. Кроме того, у пользователя есть возможность отфильтровать возвращаемый список. Проблема, с которой я сталкиваюсь, заключается в том, что этот список не фильтруется. Например, я пытаюсь получить список пользователей из базы данных; Я называю метод с использованием этого синтаксисаGeneric Repository GetAll Filter Не фильтрует
var users = unit.UserRepository.GetAll(x => x.UserName == username);
Ожидалось, что один пользователь, но он возвращает всех пользователей в базе данных.
Вот мой общий метод:
public IEnumerable<TEntity> GetAll(Expression<Func<TEntity, bool>> filter =null,
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderby = null, string property = "")
{
IQueryable<TEntity> query = dbSet;
if (filter != null)
{
query.Where(filter);
}
if (property != null)
{
foreach (var p in property.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
query = query.Include(p);
}
}
if(orderby != null)
{
return orderby(query);
} else
{
return query.ToList();
}
}
там что-то, что я здесь отсутствует?
Там, кажется, не будет ничего плохого в 'функции GetAll' , вы уверены, что есть данные в db, которые соответствуют критериям? – SOfanatic