Domanda

Finora, ho provato il seguente:

public class Widget
{
    public int Id;
    public string Name;
}

public static class Main
{
    public static void Main()
    {
        // Initialize store and preload with widgets...

        using (var session = store.OpenSession())
        {
            var widgets = session.Load<Widget>();
            foreach(var widget in widgets)
            {
                Console.WriteLine(widget.Name);
            }
        }
    }
}

ho potuto caricare tutti aggiungendo un indice e quindi utilizzando tale indice come una query:

var store = new DocumentStore();
store.DatabaseCommands.PutIndex("AllWidgets", new IndexDefinition<Widget>
{
    Map = widget => from widget in widgets
                   select new { widget }
});

// Back in Main
var widgets = session.Query<Widget>("AllWidgets");
// Do stuff with widgets.

C'è un modo per ottenere solo tutti i documenti di tipo Widget senza dover creare un indice?

A questo punto sto solo giocando con RavenDB in un ambiente sandbox. Mi rendo conto che questo non è di solito l'approccio migliore per il recupero dei dati.

È stato utile?

Soluzione

Si

utilizzare la query DocumentsByName - questo per quanto posso lavorare fuori non è intuitiva nell'interfaccia cliente al momento, ma sembra qualcosa di simile:

documentSession.LuceneQuery<ImageDocument>("Raven/DocumentsByEntityName")
                 .Where("Tag:Widgets")
                 .Take(100)
                 .ToArray();

È utile se si conosce l'API HTTP volte:)

. NB: Nota come pluralises per voi, questo è una convenzione e può essere ignorato

Nota: Nel forcella instabile (quindi probabile che sia stabile presto, quanto sopra può essere facilmente realizzato con

documentSession.Query<ImageDocument>().Take(100).ToArray()

Molto più bello

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top