1

以下のような2つのクラスがあるとしましょう:

public class Class1 
{
    ....
    public int CityId {get;set;}
    public string CityName {get;set;}
    public ObjectId _id {get;set;}
}

public class Class2 : Class1
{
    public string OrderId {get;set;}
}


collUser.Update(
    Query.EQ("_id", model._id), 
    Update.Replace(model)); 

のオブジェクト タイプを使用するとClass2、更新は正常に機能します。

しかし、オブジェクトタイプを使用すると、更新によりレコードのフィールドClass1が削除されます。OrderId

コレクション内のすべてのレコード(ドキュメント)を置き換えると思います。

これを回避する方法はありますか?または、以下のように Update.Set を使用するよりも簡単な方法はありますか?

Update.Set("fieldName",value).Set("fieldName2",value2)

つまり、そのオブジェクト (Class1 または Class2) が残りのフィールドを削除せずにプロパティを所有している場合、フィールドを更新したいだけです。

4

1 に答える 1