Я хочу сделать общий метод для ЧАСТИЧНОГО обновления документа из данных json.Данные json содержат подмножество полей обновляемого POCO.У меня есть это:
public static void Update(MongoCollection collection, ObjectId id, string jsonData) {
// assume jsonData does not contain the id field.
var bsonDoc = BsonSerializer.Deserialize<BsonDocument>(jsonData);
IMongoUpdate updateDoc = new UpdateDocument("$set", bsonDoc);
collection.Update(Query.EQ("_id",id), updateDoc);
}
Это почти работает, но моя проблема в том, что поля с типом ObjectId десериализованы как строки, потому что именно так они представлены в JSON.(Они были сериализованы с помощью javascript JSON2 lib на стороне клиента).
Итак, мои вопросы:
1) Каков наилучший способ заставить общий метод частичного обновления работать с jsonданные с официальным драйвером C #?2) Как я могу получить правильную десериализацию полей poco для правильных типов, а не просто для строк при использовании BsonSerializer?