Если вы хотите продолжать использовать старое имя, которое вы могли бы использовать BsonElement
атрибут:
class Demo {
[BsonElement("Comment")]
public string Comments { get; set; }
}
Используя этот синтаксис будет указать драйвер MongoDB C#, чтобы найти данные для Comments
свойства/полей в поле в документе в поле с именем Comment
. Это означало бы, что вам не нужно беспокоиться о перемещении/копировании данных из старого местоположения. Он часто используется для использования более длинных дружественных имен в исходном коде при минимизации фактического размера документа BSON (поскольку полное имя свойства всегда сохраняется в документе в коллекции базы данных). При сокращении, вы могли бы, например, просто использовать:
[BsonElement("c")]
public string Comments { get; set; }
Некоторые из драйверов MongoDB не имеют этой функции (и я желаю, чтобы они сделали!).
Во-вторых, вы также можете просто добавить специальный атрибут к классу игнорировать все неизвестные элементы класса и не бросил исключение:
[BsonIgnoreExtraElements]
public Demo {
public string Comments { get; set; }
}
Тогда, если поле с именем Comment
найден, но не может» t будет соответствовать свойству вашего класса C#, он будет проигнорирован. Я часто использую это во время разработки, поскольку изменяется схема, но затем удаляю ее позже, чтобы я мог поймать неожиданные поля.
Или вы можете также использовать BsonClassMap
, чтобы сделать подобные изменения:
BsonClassMap.RegisterClassMap<Demo>(cm => {
cm.AutoMap();
cm.SetIgnoreExtraElements(true);
});
Есть даже еще несколько вариантов документированных here если вы хотите полный контроль.