如何处理类和MongoDB文档之间的差异
本文关键字:文档 MongoDB 之间 何处理 处理 | 更新日期: 2023-09-27 18:15:58
所以我有一个像这样的class:
public class Customer
{
public ObjectId Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
让我们说,我添加一些这样的文档到MongoDB。但是,如果我从类中删除一些字段呢?例如,我只留下Id
和FirstName
然后,当我尝试以这样的方式接收数据时:
var result = db.Get<Customer>().AsQueryable<Customer>();
我有一个异常
"元素'LastName'不匹配类akmongolia . customer的任何字段或属性。"
我当然理解这一点,为什么会发生这种情况,但如何处理它?
顺便说一下,我的Get
方法只返回
return _database.GetCollection<Customer>("Customer");
一种方法是将BsonIgnoreExtraElements
属性添加到您的类:
[BsonIgnoreExtraElements]
public class Customer
{
public ObjectId Id { get; set; }
public string FirstName { get; set; }
}
另一个是使用类映射:
BsonClassMap.RegisterClassMap<Customer>(cm => {
cm.AutoMap();
cm.SetIgnoreExtraElements(true);
});
或者,您可以查看catch all字段