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