RavenDB:简单查询<T>().ToList()返回0结果

Zas*_*asz 9 ravendb

我使用RavenDB(在运行@localhost:3000的服务器模式下)和ASP.NET MVC3

我有这个代码段从构建289停止工作.它之前确实工作了几次,不确定它是322的更新还是我做的事情.

Session.Query<Post>().ToList().ForEach(Session.Delete);
Run Code Online (Sandbox Code Playgroud)

当我尝试一段时间时它正在删除所有帖子,(我的样本数据中只有大约50个帖子,还有500个以上的帖子)而且只有我能看到的变化是这两个在运行时发生的

A first chance exception of type 'System.Net.WebException' occurred in System.dll
A first chance exception of type 'System.Net.WebException' occurred in Raven.Client.Lightweight.dll
Run Code Online (Sandbox Code Playgroud)

当上面的代码段(Session.Delete)实际运行时,此日志将出现在visual studio输出窗口中

Executing query '' on index 'dynamic/Posts' in 'http://localhost:3000'
Query returned 0/0 results
Run Code Online (Sandbox Code Playgroud)

在Raven日志中,(文本文件)没有任何不妥之处

Request #   7: GET     -    46 ms - ZaszStore  - 200 - /indexes/dynamic/Posts?query=&start=0&pageSize=128&aggregation=None
Run Code Online (Sandbox Code Playgroud)

这个查询运行得很好:

Session.Load<Post>("MyPostId")
Run Code Online (Sandbox Code Playgroud)

并获取正确的Post Instance.

为什么一个简单的Session.Query().ToList()一直返回0结果?而Session.Query().Count()总是返回0.考虑到Raven DB的SilverLight-UI(SL-UI)清楚地显示数据库中有50多个帖子,可能导致此行为的原因是什么?

"Raven-Entity-Name"正确填充.

Mat*_*ren 1

对于此类查询,您可以获得所有文档,如下所示:

documentStore.DatabaseCommands.StartsWith("post", <page>, <size>) 
Run Code Online (Sandbox Code Playgroud)

这应该比发出查询来返回所有文档更容易、更高效,因为它绕过 Lucene 索引直接从数据存储中提取它们。

然而,它仅在您想要获取所有以 save 前缀作为 ID 的文档时才有效。