让我们以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
)?
答案 0 :(得分:1)
高速缓存LoadDocument,因此对同一个文档调用一次或多次并不重要。
答案 1 :(得分:0)
您可以在查询中使用.Include<Customer>(invoice => invoice.CustomerId)
,以便返回所有引用的客户以及结果。请参阅Load with Includes。