2
我有一个简单的类层次结构看起来像这样:使用TransformResults从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 Description { get; set; }
public List<Bottom> Bottoms { get; set; }
}
public class Bottom
{
public string Id { get; set; }
public string Description { get; set; }
}
整个事情被保存为类型的实体“顶”。文档旨在保留和反映关系/层次结构,但只有一半,但我会仅关注给定关系的“Id”和“Description”。所以,我要运行的查询类型是
- 选择一切之上,
- 选择所有中东,
- 选择中,其中Top.Id = someValue中
- 选择底,其中Top.Id = someValue中和Middle.Id = someValue中
我想结果进行改造,并返回到我这个样子:
public class Result
{
public int Id { get; set; }
public string Description { get; set; }
}
如何才能实现TransformResults(我认为这是可以使用的功能)?我已经阅读了很多例子,但突然间我看到了参数/值,这些参数/值没有在任何地方声明,因此我不明白发生了什么。
好的,在这种情况下我应该怎么做?我把它分开,把Top,Middle和Bottom作为单独的文件对待?为什么我的方法“奇怪”?它是否过于关系?我只是想了解我做错了什么,做什么是正确的做法。感谢帮助! – user981375 2012-08-06 13:27:30
我想我可能会混淆这些问题。阅读后http://stackoverflow.com/questions/7829379/ravendb-retrieving-part-of-document?rq=1现场投影产生我想要的。如果我指定我的quey像'var top = session.Query .First(t => t.Id.Equals(1))。Middles.Select(m => new {m.Id,m.Description})。ToList ()'然后我得到所有Middles给定的Top.Id,这正是我想要的。以同样的方式,我可以一直导航。这工作得很好,但这是做到这一点的方式? –
user981375
2012-08-06 17:11:36