0

所以我有这样的课:

public class Customer
{
    public ObjectId Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

假设我向 MongoDB 添加了一些这样的文档。但是,如果我从课堂上删除一些字段怎么办?例如我只离开IdFirstName

然后,当我尝试以这种方式接收数据时:

var result = db.Get<Customer>().AsQueryable<Customer>();

我有一个例外

“元素 'LastName' 与 AKMongo.Customer 类的任何字段或属性都不匹配。”

我当然理解这一点,以及为什么会发生这种情况,但是如何处理呢?

顺便说一句,我的Get方法只是返回

    return _database.GetCollection<Customer>("Customer");
4

1 回答 1

1

一种方法是将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 ”字段。

于 2013-05-28T20:29:35.590 回答