小编Jos*_*osh的帖子

Mongo .Net Driver PipelineStageDefinitionBuilder.Project自动忽略所有带有facet的Id值

当使用 PipelineStageDefinitionBuilder 为聚合管道创建投影阶段时,它似乎总是忽略Id数据集中的任何值。我在 .Net Core 应用程序中使用 Mongo .Net 驱动程序 2.8。以下是复制步骤。

在 Aggregate() 上使用 IAggregateFluent 语法时,相同的投影有效,但我需要使用构面构建器。当针对聚合运行构建器时,它也可以工作,但是在 a 中facet它无法绑定任何Id值。

只是带有 id 的空类用于测试(添加类型以显示法线映射工作):

public class DatabaseModel
{
    public Guid Id { get; set; }
    public string Type { get; set; }
}

public class ProjectionClass
{
   public Guid Id { get; set; }
   public string Type { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

当我使用下面的内容创建投影时,它成功生成查询,但是在所有返回的模型中,Id 值设置为 null。该查询似乎有一个 Id_ : 0 值,但在正常聚合中似乎也产生了相同的值,所以我认为这不相关?

var typeFilter = Builders<DatabaseModel>.Filter.Eq(x => x.Type, "Full");

var aggregationPipeline …
Run Code Online (Sandbox Code Playgroud)

.net c# mongodb asp.net-core

5
推荐指数
1
解决办法
3149
查看次数

标签 统计

.net ×1

asp.net-core ×1

c# ×1

mongodb ×1