You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6读取MongoDB时[JsonProperty]属性不生效问题求助

解决建议

1. 使用MongoDB官方特性映射字段

MongoDB .NET驱动并不识别[DataMember]和[JsonProperty]特性,需要使用它自带的[BsonElement]特性来明确指定模型属性与MongoDB文档字段的对应关系:

[BsonIgnoreExtraElements]
public class Activity
{
    [BsonElement("activitySource")]
    public string ActivitySource { get; set; }
}

添加该特性后,驱动会正确将模型中的ActivitySource属性映射到数据库集合里的activitySource字段,查询时就能匹配到对应数据。

2. 全局配置驼峰命名序列化规则

如果你的MongoDB文档普遍采用驼峰命名,不想给每个属性单独加特性,可以全局配置驱动的序列化约定,自动将PascalCase格式的属性名转为camelCase格式的字段名:

// 全局注册驼峰命名约定
var conventionPack = new ConventionPack { new CamelCaseElementNameConvention() };
ConventionRegistry.Register("CamelCase", conventionPack, t => true);

// 后续正常初始化客户端和集合
var client = new MongoClient("你的连接字符串");
var collection = client.GetDatabase("数据库名").GetCollection<Activity>("Activity");

这样所有模型的PascalCase属性都会自动对应到数据库中的camelCase字段,无需逐个配置特性。

3. 校验查询条件的准确性

确认查询时传入的"...."值与MongoDB中activitySource字段的实际值完全一致,包括大小写、空格、特殊字符等细节,避免因值不匹配导致查询无结果。


内容的提问来源于stack exchange,提问作者शेखर

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:06:29