Я пытаюсь реализовать сложный фильтр с использованием Entity Framework: я хочу добавить предложения where
к запрашиваемому объекту на основании моих критериев поиска.Несколько предложений .Where() на платформе Entity Queryable
Могу ли я сделать следующее в Entity Framework 6?
var queryable = db.Users.Where(x => x.Enabled && !x.Deleted);
// Filter
var userId = User.Identity.GetUserId();
queryable.Where(x => x.AspNetUser.Id == userId);
queryable.Where(x => x.Status >= 2);
// ...etc
Я знаю, что я могу сделать:
var queryable = db.Users
.Where(x => x.Enabled && !x.Deleted)
.Where(x => x.AspNetUser.Id == userId)
.Where(x => x.Status >= 2);
Но я не получаю ожидаемые результаты с этим решением. Кажется, что игнорируются две секунды: where
.
Вам необходимо присвоить результат, что-то вроде: 'запрашиваемых = queryable.Where (х => x.AspNetUser.Id == идентификатор пользователя),' Кстати, вы можете использовать 'и (&&)' и избегать написания нескольких предложений 'where'. – Akbari
@Akbari, это должен быть ответ –