У меня странная проблема с драйвером mongodb .net. При использовании перечисленного ниже исходного кода все свойства TestObject сохраняются как UUID, за исключением
Свойство «guid» в словаре.
Итак, поведение по умолчанию с BsonSerializer.RegisterSerializer(new GuidSerializer(GuidRepresentation.Standard)); дает следующий результат в монго. Как вы можете видеть, только один guid хранится в двоичном виде. Остальное — это UUID.

Но когда я использую
BsonSerializer.RegisterSerializer(new GuidSerializer(GuidRepresentation.Standard)); BsonDefaults.GuidRepresentation = GuidRepresentation.Standard; Это дает следующий результат в монго. Как видите, все гиды хранятся как UUID. Итак, почему поведение в первом случае отличается? Хотя у меня нет проблем с использованием BsonDefaults.GuidRepresentation = GuidRepresentation.Standard;
, он помечен как устаревший, поэтому мне нужно знать, как решить эту проблему, поскольку я хочу, чтобы все направляющие хранились как UUID.

Есть идеи, как это исправить?
Полный источник:
var ConnectionString = "mongodb://localhost:27017"; BsonSerializer.RegisterSerializer(новый GuidSerializer(GuidRepresentation.Standard)); //BsonDefaults.GuidRepresentation = GuidRepresentation.Standard; //раскомментируем для правильной работы // Создаем объект MongoClient. вар клиент = новый MongoClient (connectionString); // Получение вашей базы данных (замените «yourDatabase» на имя вашей базы данных). база данных var = client.GetDatabase("тест"); // Получите свою коллекцию (замените «yourCollection» на имя вашей коллекции). коллекция var = база данных.GetCollection("guids"); TestObject testObject = новый TestObject { Идентификатор = 1, Имя = "аааааааа", Guids = новый список() { Гуид.НовыйГид(), Гуид.НовыйГид() }, Объекты = новый словарь() }; testObject.Objects.Add("guides", новый List() { Гуид.НовыйГид(), Гуид.НовыйГид() }); testObject.Objects.Add("guid", Guid.NewGuid()); // Вставляем экземпляр TestObject в коллекцию. коллекция.InsertOne(testObject); Console.WriteLine("Тестовый объект успешно добавлен."); Консоль.ReadKey(); общедоступный класс TestObject { [БсонИд] общественный ИНТ Id {получить; набор; } общедоступная строка Имя {get; набор; } public IEnumerable Guids {get; набор; } общественный словарь Объекты {get; набор; } }
Мобильная версия