Как предотвратить нежелательные запросы в хранилище - PullRequest
0 голосов
/ 17 мая 2018

У меня есть класс репозитория, который принимает объект QueryConstraints в качестве параметра для запроса хранилища данных и возврата IEnumerable требуемой сущности.Предполагается, что хранилище предотвращает запросы, которые могут занимать слишком много времени для обработки.QueryConstraints имеют следующий вид:

public class QueryConstraints<T>
{
    public Expression<Func<T, bool>> WhereClause { get; }
    public Expression<Func<T, bool>> SortClause { get; }
    public int Skip {get;}
    public int Take {get;}
    ...
    some other fields
}

Когда клиент создает QueryConstraints, он должен назначить выражения для свойств WhereClause и SortClause и передать объект в метод Find () хранилища, где должны проверяться выражения.и обработано.

Мой вопрос: Я знаю, что можно использовать дерево выражений для проверки тела выражения.Однако я не знаю, как это сделать, чтобы достичь своей цели.Например, я хочу предотвратить запрос, у которого нет индекса, доступного для его полей.Как мне это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...