.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属性,而实体中并没有此属性造成的异常:
至此,异常解决,程序运行正常。
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。