簡単に言えば、それはすべて慣習についてです。 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にし、クラスは正常に逆シリアル化されます