.NET Core MongoDB 查询数据异常及解决

.NET Core 查询 MongoDB异常消息

Element '_class' does not match any field or property of class WebApiServer.Model.Enity.Ypxxx.

图中写的修改实际是查询分页出现的异常,异常是查询转换为List<T>时出现的: 

这个错误通常发生在MongoDB文档中包含的字段(如'_class')与C#实体类中定义的属性不匹配时‌。以下是几种解决方案:

1、使用[BsonIgnoreExtraElements]特性忽略未映射的字段

[BsonIgnoreExtraElements]
public class Ypxxx
{
    // 类属性定义
}

2、如果'_class'字段是必要的,可以在实体类中添加对应属性

public class Ypxxx
{
    [BsonElement("_class")]
    public string Class { get; set; }
    // 其他属性
}

3、全局配置忽略额外元素(适用于整个项目)‌

ConventionRegistry.Register("IgnoreExtraElements", 
    new ConventionPack { new IgnoreExtraElementsConvention(true) }, 
    t => true);
    
这个错误表明MongoDB文档结构可能与你的实体类不完全匹配‌。建议检查:

数据库文档实际包含的字段

实体类属性是否使用正确的Bson特性标注

是否需要保留'_class'字段(常见于某些ORM框架)

本文为了方便省时省力,使用方案1解决 

在实体类上添加特性忽略未映射的字段: 

在运行调试即可成功:

其主要原因是由于MongoDB数据库集合中含有_class属性,而实体中并没有此属性造成的异常:

至此,异常解决,程序运行正常。

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hefeng_aspnet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值