我将 MongoDB 与 C# 的官方 MongoDb 驱动程序一起使用。
我的域对象都有一个字符串类型的 Id 属性
string Id { get; set;}
但我想在实际数据库中存储 12 个字节的二进制 ObjectId,这是在类映射中实现的,如下所示:
BsonClassMap.RegisterClassMap<X>(cm => {
cm.AutoMap();
cm.GetMemberMap(c => c.Id).SetRepresentation(BsonType.ObjectId);
});
其他集合的外部 ObjectId 键也表示为字符串,也应保存为对象 ID。
现在,如果可以避免的话,我不想为每个 Id 和外键编写相同的 SetRepresenttion 内容。
那么有没有办法一劳永逸地说,所有字符串 Id 字段都应该表示为 db 中的 ObjectIds 并且名称以“Id”结尾的所有字符串属性也应该表示为 db 中的 ObjectIds?