索引和转换器中相同DocumentId的多个LoadDocument

时间:2015-03-01 18:09:36

标签: ravendb

让我们以RavenDb文档中的简单索引为例:

public class SampleIndex : AbstractIndexCreationTask<Invoice>
{
    public SampleIndex()
    {
        Map = invoices => from invoice in invoices
                          select new
                          {
                              CustomerId = invoice.CustomerId,
                              CustomerName = LoadDocument<Customer>(invoice.CustomerId).Name
                          };
    }
}

假设我需要在索引或变换器中拥有多个客户属性。我应该每次调用LoadDocument<Customer>(invoice.CustomerId).SomeProperty(可能是RavenDb优化它并实际加载文档一次)还是有任何特殊语法(类似于LINQ中的let)?

2 个答案:

答案 0 :(得分:1)

高速缓存LoadDocument,因此对同一个文档调用一次或多次并不重要。

答案 1 :(得分:0)

您可以在查询中使用.Include<Customer>(invoice => invoice.CustomerId),以便返回所有引用的客户以及结果。请参阅Load with Includes