Come creare un esploratore RavenDB?
-
01-10-2019 - |
Domanda
mi piacerebbe scrivere il mio tavolo semplice basata RavenDB explorer, simile al Web UI. Questo è per l'apprendimento Raven, per lo più.
Quindi il mio primo compito è quello di leggere tutti i documenti dal db, non importa che cosa App a cui appartengono. Mi piacerebbe ottenere questo utilizzando l'API client, ma sembra che sia session.Query e session.LuceneQuery richiedono classe di specificazione.
Cosa API dovrei usare per questo compito?
Soluzione
L'API client richiede un tipo perché è progettato per funzionare con CLR POCO e quindi gestisce la conversione (da JSON) per voi.
Sarà necessario lavorare direttamente con il JSON nel tuo caso, come non si conosce il tipo. Questo è ciò che fa l'utente web. Io consiglierei di guardare attraverso il codice Java-Script per vedere come è fatto.
Inoltre v'è sempre un indice di default chiamato "Raven / DocumentsByEntityName" che è possibile interrogare. Questa indicizza il "Raven-Entity-name" (corrispondente al tipo CLR), che vengono memorizzati in un metadati documenti. Questo è quello che utilizza Raven per consentirgli di convertire il JSON per un tipo CLR. Vedere la documentazione per ulteriori informazioni
Altri suggerimenti
Il sotto estrarrà tutti i documenti RavenDB in JSON:
var docStore = new DocumentStore { Url = "http://localhost:8080" };
using (docStore.Initialize())
{
var docs = docStore
.DatabaseCommands
.Query("Raven/DocumentsByEntityName", new IndexQuery());
}