使用TransformResults从RavenDB中选择分层数据?
我有一个简单的类层次结构,如下所示:使用TransformResults从RavenDB中选择分层数据?,ravendb,Ravendb,我有一个简单的类层次结构,如下所示: public class Top { public string Id { get; set; } public string Description { get; set; } public List<Middle> Middles { get; set; } } public class Middle { public string Id { get; set; } public string De
public class Top
{
public string Id { get; set; }
public string Description { get; set; }
public List<Middle> Middles { get; set; }
}
public class Middle
{
public string Id { get; set; }
public string Description { get; set; }
public List<Bottom> Bottoms { get; set; }
}
public class Bottom
{
public string Id { get; set; }
public string Description { get; set; }
}
public class Result
{
public int Id { get; set; }
public string Description { get; set; }
}
我如何实现TransformResults(我认为这是可以使用的功能)来实现这一点?我读过很多例子,但突然间我看到了参数/值,它们没有在任何地方声明,因此我不明白发生了什么。TransformResults无法访问外部世界,您无法根据运行的查询执行逻辑。 当然,您可以展平此结构,但除非您将使用不同的TransformResults创建多个索引,否则您无法做到这一点。
请注意,这首先是一件奇怪的事情,因为它与作为事务边界的文档的标准建模不匹配。好的,那么在这种情况下我应该怎么做?我应该把它分开,把顶部、中部和底部作为单独的文档处理吗?为什么我的方法“奇怪”?是不是关系太密切了?我只是想知道我做错了什么,什么是正确的方法。谢谢你的帮助!我想我可能把问题弄糊涂了。在看了实况转播后,我得到了我想要的。如果我像
var top=session.Query.First(t=>t.Id.Equals(1)).Middles.Select(m=>new{m.Id,m.Description}).ToList()
那样指定我的quey,那么我会得到给定top.Id的所有中间值,这正是我想要的。以同样的方式,我可以一直向下导航。这很有效,但这是一种方法吗?