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

MongoDB与.NET API模型字段匹配异常:'BookID'不匹配问题

问题根本原因与解决方案

根本原因

你给BookID属性添加了[BsonId]特性,MongoDB .NET驱动的默认规则是:被[BsonId]标记的属性会被映射到集合中的_id字段,而非属性本身的名称BookID。但你的Books集合实际存储的字段是BookID,驱动在反序列化文档时,会把模型的BookID对应到数据库的_id字段,找不到匹配项就抛出了'BookID' does not match any field or property异常。

彻底修复方案

不用依赖[BsonIgnoreExtraElements]临时规避,有两种直接解决的方式:

  • 显式指定字段映射
    给BookID属性添加[BsonElement("BookID")]特性,强制驱动将该属性与数据库中的BookID字段绑定,同时保留主键标识:
    [BsonId]
    [BsonRepresentation(BsonType.ObjectId)]
    [BsonElement("BookID")]
    public string? BookID { get; set; }
    
  • 调整数据库字段(若允许)
    如果可以修改集合数据,将BookID字段重命名为_id,这样驱动的默认映射规则就能直接生效,无需额外添加特性。

内容的提问来源于stack exchange,提问作者onTheInternet

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:32:39