.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属性,而实体中并没有此属性造成的异常:

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

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