2

我有一个简单的类层次结构,如下所示:

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; }
}

整个事物被保存为“Top”类型的实体。文档旨在保留和反映关系/层次结构,但有一半但有时我会只关心给定关系的“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 (我认为这是可以使用的功能)来实现这一点?我已经阅读了很多示例,但突然间我看到了参数/值,它们没有在任何地方声明,因此我不明白发生了什么。

4

1 回答 1

1

TransformResults 无法访问外部世界,您无法根据您运行的查询执行逻辑。当然,您可以展平此结构,但除非您将创建具有不同 TransformResults 的多个索引,否则您不能这样做。请注意,这首先是一件奇怪的事情,因为它不符合将文档作为事务边界的标准建模。

于 2012-08-04T08:14:03.387 回答