簡単に言えば、それはすべて慣習についてです。 MongoDB .NETドライバーは、静的クラス
つまり、
それを修正する方法は?
デフォルトの規則を取り除くことができます
ただし、自動的に他のすべてのドライバー規則を削除するため、かなり危険です。または、常に空になる偽のプロパティを作成することもできます:
または、
したがって、規則ではConventionRegistry
を公開します これにより、独自の規則を登録できます(more ここ
)。さらに、2つの「組み込み」規則があります__defaults__
および__attributes__
。深く掘り下げる(ドライバー id
メンバーは通常のBSON_id要素と見なされます。ConventionRegistry.Remove("__defaults__");
public class SubServiceDef
{
[BsonElement("id")]
public int Id { get; set; }
[BsonId]
public ObjectId FakeId { get; set; }
}
BsonNoId
を使用することもできます [BsonNoId]
public class SubServiceDef
{
[BsonElement("id")]
public int Id { get; set; }
}
id
を設定します クラスマップのIdMemberとしてですが、後処理中にこの属性はIdMemberを強制的にnullにし、クラスは正常に逆シリアル化されます