0

几周前,我问是否有可能在 raven 的一个“系列”中包含多种类型,我很喜欢它。但是现在我开始编写一些索引/查询,并且遇到了问题..

我没有意识到这意味着所有类型都将被视为同一事物。我认为“集合”只是用于 RavenDB Management Studio 的字符串。所以……在这种情况下……

class Prototypes : { // ... }

进入带有身份模式项目/原型/#的“项目”集合

class Items : { // ... }

进入带有身份模式项目的“项目”集合/#

class Schemas : { // ... }

进入带有标识模式items/##/schemas/##的“items”集合

所以如果我这样做...

var prototypes = RavenSession.Query<Prototype>().ToArray();

我也得到了所有的项目和模式。有什么方法可以具体说明我想从索引/查询中返回的东西类型吗?

最初希望将它们分组到一个集合中只是为了保持事物整洁,而不是有很多不同的集合。我当时并没有意识到这会发生,因为我认为对查询很重要的是类名,而不是集合名。

4

1 回答 1

0

Prototype您应该只从该查询中取回项目。当您向动态查询提供类型时,所构建的索引已经将结果过滤到该类型。它使用元数据进行过滤Raven-Entity-Name,这一切都在后台神奇地发生。你不应该考虑太多。

你真的从这个查询中回来Items并输入了吗?Schemas你不应该。

顺便说一句 - 这些是非常奇怪的实体名称。通常使用更具体的类,例如Customeror BlogPost。拥有像Prototypes, Items,这样的类Schemas似乎很奇怪,除非你正在构建一些非常通用的东西并且这些与你的领域相关。

于 2013-11-06T15:49:35.920 回答