gpt4 book ai didi

c# - 如何制作 ObjectIds 的字符串表示而不必为每个成员指定它

转载 作者:可可西里 更新时间:2023-11-01 09:15:50 25 4
gpt4 key购买 nike

我将 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 字段都应该在数据库中表示为 ObjectId,并且名称以“Id”结尾的所有字符串属性也应该在数据库中表示为 ObjectId?

最佳答案

有一个约定称为ISerializationOptionsConvention。看看这里的文档:http://www.mongodb.org/display/DOCS/CSharp+Driver+Serialization+Tutorial#CSharpDriverSerializationTutorial-Writeacustomconvention .

使用它您将能够测试成员类型是否为字符串以及名称是否以“Id”结尾,然后将其分配给您的序列化选项。

关于c# - 如何制作 ObjectIds 的字符串表示而不必为每个成员指定它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10858673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com