Pregunta

Hasta ahora, he intentado lo siguiente:

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

I han sido capaces de cargar todos mediante la adición de un índice y a continuación, utilizando dicho índice como una consulta:

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.

¿Hay una manera de obtener sólo todos los documentos de tipo Widget sin tener que crear un índice?

En este momento sólo estoy jugando con RavenDB en un entorno de pruebas. Soy consciente de que esto generalmente no es el mejor enfoque para ir a buscar los datos.

¿Fue útil?

Solución

utilizar la consulta DocumentsByName - esto por lo que yo puedo hacer ejercicio no es intuitivo en la interfaz del cliente en el momento, pero es como la siguiente:

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

Esto ayuda si conoce la API HTTP veces:)

Nota:. Nota cómo pluralises para usted, se trata de una convención y puede ser anulado

Nota: En el tenedor inestable (por lo que es probable que sea estable pronto, lo anterior se puede conseguir fácilmente con

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

Mucho mejor

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top