C# 用の公式 MongoDb ドライバーで MongoDB を使用しています。
私のドメイン オブジェクトはすべて文字列型の Id プロパティを持っています
string Id { get; set;}
しかし、実際のデータベースに 12 バイトのバイナリ ObjectId を格納したいのですが、これは次のようにクラス マップで実現されます。
BsonClassMap.RegisterClassMap<X>(cm => {
cm.AutoMap();
cm.GetMemberMap(c => c.Id).SetRepresentation(BsonType.ObjectId);
});
他のコレクションへの外部 ObjectId キーも文字列として表され、オブジェクト ID として保存する必要があります。
さて、回避できるのであれば、ID と外部キーごとに同じ SetRepresenttion を書きたくありません。
したがって、すべての文字列 Id フィールドを db で ObjectIds として表す必要があり、名前が「Id」で終わるすべての文字列プロパティも db で ObjectIds として表す必要があると言う方法はありますか?