我在使用 RavenDB 转换器时遇到了一些困难,无法正确使用 include。假设我有以下文档类:
public class Processor
{
public string Id { get; set; }
// other properties
}
public class Job
{
public string Id { get; set; }
public string ProcessorId { get; set; }
// other properties
}
这是我的视图模型:
public class ProcessorStatsViewModel
{
public string Id { get; set; }
public int JobCount { get; set; }
// other properties
}
在我的转换器中,我想查询处理器文档存储,并在作业存储中进行包含,查找每个具有匹配处理器ID的作业。我找到的所有搜索结果都描述了当Processor类具有JobId列表时如何执行此操作。在RavenDB中是否有一种方法可以实现这一点?
我想要的转换器可能类似于:
public Processors_StatsViewModel()
{
TransformerResults = procs =>
from p in procs
let jobs = Include<Jobs>(p.Id) // how can i specify something like where p.Id == j.ProcessorId ?
select new
{
p.Id
JobCount = jobs.Count
// other stuff
}
}
所有Transformer的LoadDocument、Include和Recurse方法都希望被查询的类具有列表引用ID,但在我的情况下,我需要相反的情况。
这是我是否可以在RavenDB中做的事情,还是我漏掉了什么?