1

CRUD操作を簡素化するためにジェネリック型を受け入れるMongoDBヘルパークラスがあります。ただし、更新方法を理解するのに苦労しています。私が読んだすべてから、各フィールドを個別に更新する必要があるようです。

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

しかし、私がやりたいことは次のようなものです:

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

これは可能ですか?または、エンティティに固有の各エンティティのクラスに update メソッドを含める必要がありますか?

4

1 に答える 1

2

オブジェクト全体を更新 (置換) する場合は、次のようにします。

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

_id フィールドが設定されているかどうかを検出し、正しいアイテムを保存します。

オブジェクトに主キー プロパティが含まれている場合 (含まれている必要があります)、属性で修飾して Mongo にヒントを与えることができます。

[BsonId()]

特定のフィールドのみを更新する場合は、常にリフレクションを使用して型のプロパティをループし、それらを Update のセッターに追加できます。

于 2013-07-18T20:12:04.423 に答える