如何在RavenDB中处理投影

本文关键字:处理 投影 RavenDB | 更新日期: 2023-09-27 18:21:03

给定域模型。。。

public class Entity
{
    public int Id { get; set; }
    public Category Category { get; set; }
}
public class Category
{
    public string Title { get; set; }
}

我想将选择查询的结果投影到这个视图模型:

public class EntityViewModel
{
    public int Id { get; set; }
    public string CategoryTitle { get; set; }
}

我尝试了以下查询:

var viewModel = (from entity in _documentSession.Query<Entity>()
                select new EntityViewModel
                            {
                                Id = entity.Id,
                                CategoryTitle = entity.Category.Title
                            }.ToList();

这样做的结果只是部分正确:设置了Id,而没有设置CategoryTitle。我理解这种行为在设计上是,但我怀疑有一个API来处理这种情况。

在RavenDB中应该如何处理这样的投影?

更新:我在嵌入式模式下使用版本1.0.573。

更新2:我分叉了RavenDB存储库,添加了一个失败的测试来证明这种行为,并创建了一个拉取请求(#444)。我发现后会发布更多信息。

如何在RavenDB中处理投影

看起来它实际上是一个bug。有关更多信息,请参阅拉取请求#444。

当这个问题在稳定版本中得到修复时,我会更新这个答案

已在当前稳定版本中修复。