如何使用 BsonClassMap 配置对象 ID 数组的表示形式
本文关键字:表示 数组 ID 何使用 BsonClassMap 配置 对象 | 更新日期: 2023-09-27 17:56:04
请考虑以下 C# 类:
public class Role
{
public string Id { get; set; }
public IEnumerable<string> Users { get; set; }
}
如何配置用户使用 BsonClassMap.RegisterClassMap<Role>
映射到 MongoDB 中的 ObjectId 数组?我能够配置标量属性 Id 映射到 ObjectId,但无法弄清楚如何对序列(数组)执行相同的操作:
BsonClassMap.RegisterClassMap<Role>(m =>
{
m.MapIdProperty(r => r.Id).SetRepresentation(BsonType.ObjectId);
// How do I map r.Users to an array of ObjectId??
m.MapProperty(r => r.Users);
});
答案是使用正确初始化的ArraySerializationOptions
对象调用SetSerializationOptions
:
BsonClassMap.RegisterClassMap<Role>(m =>
{
m.MapIdProperty(r => r.Id).SetRepresentation(BsonType.ObjectId);
m.MapProperty(r => r.Users).SetSerializationOptions(
new ArraySerializationOptions(new
RepresentationSerializationOptions(BsonType.ObjectId)));
});