Реализация шаблона репозитория и службы с RavenDB

У меня есть некоторые трудности с реализацией репозитория и шаблона службы в моем проекте RavenDB. Основное беспокойство вызывает то, как должен выглядеть интерфейс моего репозитория, потому что в RavenDB я использую пару индексов для своих запросов.

Допустим, мне нужно получить все элементы, у которых парентид равен 1. Один из способов - использовать IQueryable List () и получить все документы, а затем добавить предложение where, чтобы выбрать элементы, у которых параметр parentid равен 1. Это кажется плохой идеей, потому что я не могу использовать какие-либо функции индекса в RavenDB. Таким образом, другой подход состоит в том, чтобы иметь что-то вроде этого, IEnumerable Find (строковый индекс, предикат Func) в репозитории, но это также кажется плохой идеей, потому что он недостаточно общий и требует, чтобы я реализовал этот метод, если я перейду с RavenDB к обычному серверу sql.

Итак, как я могу реализовать общий репозиторий, но при этом получить преимущества индексов в RavenDB?

11
задан Community 23 May 2017 в 11:48
поделиться