Как создать проводник RavenDB? - PullRequest
3 голосов
/ 28 июня 2010

Я бы хотел написать свой собственный простой исследователь на базе RavenDB, похожий на веб-интерфейс. В основном это для изучения ворона.

Итак, моя первая задача - прочитать все документы из БД, не важно, к какому приложению они принадлежат. Я хотел бы добиться этого с помощью клиентского API, но похоже, что для session.Query и session.LuceneQuery требуется спецификатор класса.

Какой API я должен использовать для этой задачи?

Ответы [ 2 ]

7 голосов
/ 30 июня 2010

Ниже будут извлечены все документы RavenDB в формате Json:

var docStore = new DocumentStore { Url = "http://localhost:8080" };
using (docStore.Initialize())
{
    var docs = docStore
        .DatabaseCommands
        .Query("Raven/DocumentsByEntityName", new IndexQuery());
}
3 голосов
/ 28 июня 2010

Клиентскому API требуется тип, потому что он разработан для работы с CLR POCO и поэтому обрабатывает преобразование (из Json) для вас.

В вашем случае вам нужно будет работать непосредственно с Json, поскольку вы не знаете тип. Это то, что делает веб-интерфейс. Я бы порекомендовал просмотреть код Java-Script, чтобы увидеть, как это делается.

Также всегда есть индекс по умолчанию, называемый Raven / DocumentsByEntityName, который вы можете запросить. Индексирует «Raven-Entity-Name» (соответствует типу CLR), который хранится в метаданных документов. Это то, что Raven использует для преобразования Json в тип CLR. См. документы для получения дополнительной информации

...