たとえば、BsonDocuments のコレクションがあります。
MongoCollection<BsonDocument> products;
コレクションに挿入するときは、メンバー名を常に小文字にしたいと考えています。ドキュメントを読んだ後、ConventionPack が最適なようです。したがって、次のように定義しました。
public class LowerCaseElementNameConvention : IMemberMapConvention
{
public void Apply(BsonMemberMap memberMap)
{
memberMap.SetElementName(memberMap.MemberName.ToLower());
}
public string Name
{
get { throw new NotImplementedException(); }
}
}
そして、コレクション インスタンスを取得した直後に、次のように規則を登録します。
var pack = new ConventionPack();
pack.Add(new LowerCaseElementNameConvention());
ConventionRegistry.Register(
"Product Catalog Conventions",
pack,
t => true);
残念ながら、これは私のコレクションに保存されているものにはまったく影響しません。デバッグしたところ、Apply メソッドが呼び出されないことがわかりました。
コンベンションを機能させるには、どうすればよいですか?