2011-12-29 50 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