2012-03-26 239 views
2

我试图完成Querying a child collection by multiple values in RavenDB中描述的内容,但是当我尝试实现它时,似乎无法从该原始问题的此片段中建议的方法Project和类Field的位置。如何使用Project查询子集合中的字段?

public class Products_ByCategoryIdAndSpecs_SortByTotalSold : AbstractIndexCreationTask<Product> 
{ 
    public Products_ByCategoryIdAndSpecs_SortByTotalSold() 
    { 
     this.Map = products => from product in products 
           select new 
           { 
            product.CategoryId, 
            _ = Project(product.Specs, spec => new Field("Spec_" + spec.Key, spec.Value, Field.Store.NO, Field.Index.ANALYZED)), 
            product.TotalSold 
           }; 
    } 
} 

我使用RavenDB

回答

1

ErikR, 您需要使用的语法这里概述:

http://ravendb.net/docs/client-api/advanced/dynamic-fields

+0

呵呵..想象一下答案是在文档中。对不起,我忽视了那里。对于RavenDB有点新,我对有些过时的信息感到有些困惑,这些信息可以被发现,也被谷歌的力量所蒙蔽。我会精心记录下我未来搜索工作中的文档。 我在编译我的基于CreateField的解决方案从上面的链接中被盗了一点问题。编译器抱怨“表达式树可能不包含命名参数说明”。我不是很习惯命名参数。你能帮我解决吗? :) – SoManyDetails 2012-03-27 08:42:35

0

的不稳定建设721貌似要使用.Intersect()新的功能已经由马特·沃伦短短数天前加入。似乎是您所链接问题的完美解决方案。看看这里:http://issues.hibernatingrhinos.com/issue/RavenDB-51

+0

我并不认为发售者,这是我所追求的。我喜欢这个主意,能够同时查询多个“规格”。这将在以后得到方便..但现在我更感兴趣的是从字典中生成索引字段,使用键字段名称和字段值(或适当的话可能是.. :))我认为这就是关联的问题,但我可能是错的。 – SoManyDetails 2012-03-26 21:43:53