Я просто хочу убедиться, что я правильно понимаю ...
search
- это объект, который содержит строку запроса.
Repo.Query
возвращает ObjectQuery<T>
.
Насколько я понимаю, цепочечные операторы linq отфильтруют результаты после того, как каркас сущности вернет все строки, удовлетворяющие запросу.Так что действительно ВСЕ строки возвращаются и затем фильтруются в памяти.Таким образом, мы возвращаем кучу данных, которые нам не нужны.Возвращается около 10 тысяч строк, так что это очень важно.Так же, как прояснить мою путаницу.
var searchQuery = Repo.Query(search)
.Where(entity =>
entity.Prop1.ToUpper().Equals(prop1.ToUpper()) &&
entity.Prop2.ToUpper().Equals(prop2.ToUpper()))
.OrderBy(entity => Repo.SortExpression ?? entity.prop1);