1

我有一个 MongoDB 助手类,它接受泛型类型以简化 CRUD 操作。但是,我在弄清楚更新方法时遇到了一些麻烦。从我读过的所有内容来看,我似乎需要单独更新每个字段。

例如:Update.Set("Field", "New Value").Set("Other field", "Other value");

但我想做的是这样的:

void Update(T entity)
{
    collection.Update<T>(entity);
}

这可能吗?或者我是否需要在每个实体的特定于该实体的类中包含一个更新方法?

4

1 回答 1

2

假设您要更新(替换)整个对象,请执行以下操作:

void Update(T entity)
{
    collection.Save<T>(entity);
}

它将检测是否设置了 _id 字段并保存正确的项目。

如果你的对象包含一个主键属性(它应该),你可以用属性来装饰它,给 Mongo 一个提示

[BsonId()]

如果您只查看更新某些字段,那么您总是可以使用反射来循环遍历类型的属性并将它们添加到更新的设置器中。

于 2013-07-18T20:12:04.423 回答