2011-12-29 38 views
5

我想下面的查詢檢索某些類型的所有文件:RavenDb跳過項目時沒有過濾條件

var customers = documentSession.Query<Customer>() 

但在這種情況下,我只得到1次的結果(同時也有他們的78) 。如果我加入一些過濾條件這始終是真實的,我得到的所有78個文件:

var customers = documentSession.Query<Customer>().Where(c => c.Id != null).ToList(); 

我想這是一個錯誤。

更新。 RavenDb建立531

更新2

丹尼爾和奧倫,遺憾的延遲。

我準備了一個示例應用程序。你可以在這裏下載:http://www.2shared.com/file/AGIAR5UA/RavenDbSampleAppication.html

有測試NUnit項目,其中引用SkazhiKazinoNet.Data.Model.dll模型的定義。我剛剛通過Raven.Smuggler添加了最後一個RavenDb的包,並從dump4.raven導入了數據(您可以在packages/Raven/tools中找到它)。

+0

Idsa, 這聽起來不對,你能提供一個失敗的測試嗎? – 2011-12-30 09:10:18

+0

@AyendeRahien,請看Update2 – SiberianGuy 2011-12-30 16:43:30

回答

2

我敢肯定,有沒有這樣的錯誤(在任何最新版本),因爲幾個原因:

  • 這將是這樣一個巨大的一個,許多應用將打破
  • 有相當數量的單元測試會失敗

爲了幫助您識別問題 - 您能否提供失敗的測試?

請確保您在第一次查詢時也致電.ToList()

+0

我也很驚訝......我已經清除了數據文件夾和Raven.Smuggler的improted數據,現在它返回零個文檔而不是一個:)帶有Where的版本仍然返回所有項目。 – SiberianGuy 2011-12-29 11:56:36

+0

這聽起來很有趣。你可以把一個小樣本應用程序或測試並在github上上傳嗎? – 2011-12-29 15:34:16

+0

請看Update2 – SiberianGuy 2011-12-30 16:44:44

2

你說得對,存檔中的數據庫已損壞。

我可以重現錯誤。查詢:

捲曲-X GET http://localhost:8080/indexes/dynamic/Casinos

回報

{"Results":[],"Includes":[],"IsStale":false,"IndexTimestamp":"2011-12-31T02:19:51.2660000","TotalResults":0,"SkippedResults":0,"IndexName":"LastComments","IndexEtag":"00000000-0000-0100-0000-000000000078"} 

然後,我刪除了所有的索引和重新啓動服務器。現在查詢返回正確的結果。 因此,刪除所有索引並重新創建它們之後,它也可以在您的機器上運行。

對不起,但我不能提供任何進一步的信息,也許Oren可以。

+0

你是什麼意思的「刪除所有索引」?刪除索引文件夾? – SiberianGuy 2011-12-31 08:28:04

+0

內部管理工作室,逐一打開每個索引並刪除它們。 – 2011-12-31 11:18:22