我正在使用以下 C# 表达式:
Collection.Find(Builders<UserWebHook>.Filter.Eq(x => x.UserId, user))
这会生成以下查询过滤器:
{ userId: "abcdef" }
但是,我希望它生成:
{ UserId: "abcdef" }
如何配置构建器以使用所需的字段命名大小写?
怀疑您注册的是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");
});