Frage

Bisher habe ich versucht, die folgenden:

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);
            }
        }
    }
}

Ich konnte alle laden, indem Sie einen Index hinzufügen und dann diesen Index als Abfrage mit:

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.

Gibt es eine Möglichkeit, nur alle Dokumente vom Typ Widget zu erhalten, ohne einen Index erstellen zu müssen?

An diesem Punkt bin ich nur mit RavenDB in einer Sandbox-Umgebung zu spielen. Mir ist klar, dass dies in der Regel nicht der beste Ansatz Daten zu holen.

War es hilfreich?

Lösung

Ja

verwenden, um die DocumentsByName Abfrage - dies soweit ich arbeiten können, nicht intuitiv in der Client-Schnittstelle im Moment ist, aber sieht etwas wie folgt aus:

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

Es hilft, wenn Sie den HTTP-API wissen manchmal:)

NB:. Beachten Sie, wie es für Sie pluralises, das ist eine Konvention ist, und außer Kraft gesetzt werden kann

Hinweis: In der instabilen Gabel (so wahrscheinlich stabil bald sein, können die oben leicht erreicht werden durch

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

Viel schöner

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top