在RavenDB中创建索引

时间:2012-02-21 12:40:45

标签: c# indexing ravendb

我有以下文件:

public class Cars
{
    [Key]
    public string Id { get; set; }

    public string Name { get; set; }

    //collection of car price id
    public List<string> CarsPriceIds { get; set; }
}
public class CarsPriceIds 
{
    [Key]
    public string Id { get; set; }

    public string Name { get; set; }

    public List<string> CarTypesIds { get; set; }
}

public class CarTypes
{
    [Key]
    public string Id { get; set; }

    public string Name { get; set; }

 }

我的输入是Car。 我需要在我的视图中显示 汽车名称和CarType.Name匹配CarsPriceIds

我开始写我的索引并卡住了。这是我的索引

new IndexDefinitionBuilder<Cars>
{
  Map = docs => from doc in docs
  from carsPriceId in doc.CarsPriceIds 
  from carTypes in ????
  select new { doc.Name}
}

我无法继续! 接下来是什么?? 请帮忙

此致

2 个答案:

答案 0 :(得分:1)

你可能选择了错误的模型,因为看起来CarPrice和CarType在Car之外没有任何意义。因此它们应该里面 Car文档。通常,您的文档等于DDD术语中的聚合根。

但是,如果你真的想坚持使用这个模型而只想要一个可以加入你的CarPrices和CarTypes的索引,请看一下:http://ayende.com/blog/4661/ravendb-live-projections-or-how-to-do-joins-in-a-non-relational-database

答案 1 :(得分:0)