MongoCollectionSettings.GuidRepresentation устарело, какая альтернатива? - PullRequest
2 голосов
/ 05 августа 2020

Я использую MongoDB.Driver 2.11.0 и. Net Standard 2.1. Чтобы убедиться, что база данных и коллекция существует, у меня есть следующий код:

IMongoClient client = ...; // inject a Mongo client

MongoDatabaseSettings dbSettings = new MongoDatabaseSettings();
IMongoDatabase db = client.GetDatabase("MyDatabase", dbSettings);

MongoCollectionSettings collectionSettings = new MongoCollectionSettings()
{
    GuidRepresentation = GuidRepresentation.Standard,
};
IMongoCollection<MyClass> collection = db.GetCollection<MyClass>("MyClasses", collectionSettings);

В более ранних версиях MongoDB.Driver этот код компилировался без каких-либо предупреждений. В версии v2.11.0 я теперь получаю предупреждение о том, что «MongoCollectionSettings.GuidRepresentation устарело: вместо этого настройте сериализаторы», но мне не удалось найти никаких примеров, иллюстрирующих новый способ установки формата сериализации Guid. Кто-нибудь знает другие способы установки сериализаторов для коллекции?

Ответы [ 2 ]

4 голосов
/ 05 августа 2020

Если вы хотите определить GuidRepresentation для определенного свойства c, вы можете сделать это во время регистрации карты классов, например:

BsonClassMap.RegisterClassMap<MyClass>(m =>
{
    m.AutoMap();
    m.MapIdMember(d => d.Id).SetSerializer(new GuidSerializer(GuidRepresentation.Standard));
});

Если вы хотите сделать это глобально:

BsonSerializer.RegisterSerializer(new GuidSerializer(GuidRepresentation.Standard));
2 голосов
/ 05 августа 2020

Он был изменен в последней версии, подробности см. Здесь: https://mongodb.github.io/mongo-csharp-driver/2.11/reference/bson/guidserialization/

...