我有一组 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 方法。
我需要做些什么不同的事情才能让我的公约发挥作用?