Pergunta

Até agora, tentei o seguinte:

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

Consegui carregar tudo adicionando um índice e usando esse índice como uma 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.

Existe uma maneira de apenas obter todos os documentos do tipo Widget sem ter que criar um índice?

Neste ponto, estou apenas brincando com Ravendb em um ambiente de sandbox. Sei que essa geralmente não é a melhor abordagem para buscar dados.

Foi útil?

Solução

Sim

Use a consulta DocumentsByName - isso, tanto quanto eu posso trabalhar, não é intuitivo na interface do cliente no momento, mas se parece mais com a seguinte:

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

Ajuda se você conhece a API HTTP às vezes :)

NB: Observe como ele pluraliza para você, esta é uma convenção e pode ser substituída.

Nota: No garfo instável (com probabilidade de ficar estável em breve, o acima pode ser facilmente alcançado com

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

Muito melhor

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top