我正在手动创建一个BsonDocument
来存储在mongo数据库中。我想使用标准UUID格式存储一些字段。
如果我更改全局默认值,请使用:
BsonDefaults.GuidRepresentation = GuidRepresentation.Standard;
一切正常,并且BsonDocument中的值存储为UUID('<guid>')
,但是我似乎找不到不更改默认值的方法(这是针对库的,所以我不想修改任何默认设置)...我尝试将BsonValue
创建为:
new BsonBinaryData(GuidConverter.ToBytes(guid, GuidRepresentation.Standard),
BsonBinarySubType.UuidStandard)
或:
new BsonBinaryData(guid, GuidRepresentation.Standard);
或者我能想到的任何组合,如果我不更改CSUUID('<guid>')
,它仍会创建为BsonDefaults
。
有什么我想念的东西吗,这是一个错误还是在某个地方有记录?
我刚刚检查了一下,如果将BsonDefaults.GuidRepresentation
设置为GuidRepresentation.Unspecified
,它实际上可以工作:那么无论我传入什么,都可以工作……所以看起来“默认值”优先于“特定”值吗?如果是这样,为什么默认值为“传统”类型而不是“标准”类型(对于c#驱动程序,默认值似乎为GuidRepresentation.CSharpLegacy
)?
如上所述,这是用于库的,因此我不应该更改默认值,但我仍然希望使用该库生成的记录以标准格式存储,而不是以c#特定的格式存储。
有什么方法可以覆盖默认值吗?