У меня есть коллекция BsonDocuments, например:Как заставить монго хранить элементы в нижнем регистре?
MongoCollection<BsonDocument> products;
Когда я делаю вставки в коллекцию, я хочу, чтобы имя члена, чтобы всегда быть в нижнем регистре. После прочтения документации, похоже, что Конвенция - это путь. Итак, я определил один, как это:
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 никогда не вызывается.
Что мне нужно сделать по-другому, чтобы заставить мое соглашение работать?
Какой драйвер вы используете? Похоже на конкретный вопрос для водителя. Похож на C#, но я могу ошибаться. Я рекомендую добавлять теги для языка/драйвера, чтобы привлечь нужных читателей. – jared
Да, это драйвер C# (v1.8). –
Прохладный, я просто переделал его для вас. Мы посмотрим, привлекает ли это людей, которые хорошо осведомлены в драйвере C#. – jared