在 C# MongoDB 驱动程序查询中设置字段的默认大小写

问题描述 投票:0回答:1

我正在使用以下 C# 表达式:

Collection.Find(Builders<UserWebHook>.Filter.Eq(x => x.UserId, user))

这会生成以下查询过滤器:

{ userId: "abcdef" }

但是,我希望它生成:

{ UserId: "abcdef" }

如何配置构建器以使用所需的字段命名大小写?

c# .net mongodb-.net-driver
1个回答
0
投票

怀疑您注册的是camel case常规包,导致属性字段为camel case。

var pack = new ConventionPack();
pack.Add(new CamelCaseElementNameConvention());
ConventionRegistry.Register("camel case", pack, t => true);

如果不需要驼峰式大小写约定,则不应注册它,

或者 自定义成员(请参阅元素名称部分)

BsonElementAttribute

public class UserWebHook
{
    [BsonElement("UserId ")]
    public string UserId { get; set; }
}

或使用

BsonClassMap
流畅配置:

BsonClassMap.RegisterClassMap<UserWebHook>(cm => 
{
    cm.AutoMap();
    cm.MapMember(c => c.UserId).SetElementName("UserId");
});
© www.soinside.com 2019 - 2024. All rights reserved.