我想将 Guid 列表存储为 MongoDB 中的字符串列表。对于单个 Guid,我使用以下属性:
[BsonRepresentation(BsonType.String)]
public Guid GuidId{ get; set; }
Run Code Online (Sandbox Code Playgroud)
是否有一个属性可以做同样的事情:
public List<Guid> GuidIdList { get; set; }
Run Code Online (Sandbox Code Playgroud)
我找到了如何使用约定来做到这一点,但我真的很喜欢使用属性来做到这一点:
在工作人员的建议之后,我通过一个小测试尝试了这个:
[BsonRepresentation(BsonType.String)]
public List<Guid> GuidIds { get; set; }
Run Code Online (Sandbox Code Playgroud)
你猜怎么着,那是有效的!这是你在 MongoDB 中看到的:
{
"_id" : ObjectId("5450fa00f0640335e4117d46"),
"GuidId" : "f9e22da8-97c5-4dc7-ab26-ce5e095427a4",
"GuidIds" : ["48e1d0a9-74a6-4b51-af6b-b217012adeac", "5e1751b1-d945-4baa-beed-847e9696caa9"]
}
Run Code Online (Sandbox Code Playgroud)
所以该属性正在处理列表内的元素。我认为它会对列表本身进行字符串表示。
额外信息,没有属性
public List<Guid> GuidIds { get; set; }
Run Code Online (Sandbox Code Playgroud)
你在 MongoDB 中得到这个:
{
"_id" : ObjectId("5450fc4bf0640327b82cb259"),
"GuidId" : "e76f37a1-eba6-4afe-8ee4-8d431f97978c",
"GuidIds" : [new BinData(3, "E4x6bMtj606H06snHwmVGw=="), new BinData(3, "uV9vktKLzkOF/ylcOckfYg==")]
}
Run Code Online (Sandbox Code Playgroud)