2016-02-22 154 views
0

我能夠在RavenDB店插入和刪除數據。我也能夠運行返回多個文檔的查詢。查詢RavenDB

不過,我無法加載使用session.Load<Book>("books/0")返回null數據。此外,當我嘗試運行一個查詢來搜索具有給定ID的書籍,但預期會出現此特定行爲時,我會得到一個InvalidOperationException

有什麼我獲取的文檔時失蹤?

代碼塊:

using (var session = DocumentStoreHolder.Store.OpenSession()) 
{ 
    for (int i = 0; i < count; i++) 
    { 
     var doc = session.Load<Book>(i); 
     Console.WriteLine(doc); 
    } 
} 

回答

1

這是一個小會兒,因爲我用烏鴉,但我相信你需要使用查詢無法加載。

using (var session = DocumentStoreHolder.Store.OpenSession()) 
{ 
    var books = session.Query<Book>().ToList(); 
    books.ForEach(book => 
    { 
     //Note that book is an object, write out one of it's properties 
     Console.WriteLine(book.Name); 
    }); 

    //or get single book: 
    var id = 1; 
    var book = session.Query<Book>() 
     .FirstOrDefault(x => x.ID == id); 
} 
+0

請注意,僅通過在Query Query上的'ToList()'執行操作,就會將結果集限制爲128個項目(這是設計)。 – ErikHeemskerk

+0

有沒有辦法通過Id來限制查詢?這是我使用查詢時遇到的挑戰。 '但InvalidMethodException拋出;我在session.Query () 其中books.Id.Equals(ID) 選擇書籍試圖'從書本。 – emilio

+0

@carl_plat我已經更新了答案,以便通過id顯示一個查詢(假設您的圖書對象上有一個屬性ID)。 –

3

id爲books/0文檔? 通常,文檔ID以1開頭,因此您將擁有books/1等。

+0

我使用我自己的ID並從0開始。那是我應該避免的事情嗎? – emilio

+0

這似乎有所幫助。我刪除了0 ID,它效果很好。謝謝 :) – emilio