0

我有一个包含祖先 id 列表的 POCO C# 类。我想存储这个列表,List<string>以便我的域项目不需要依赖于 mongodb c# 驱动程序。这对我的 Id 属性很有效。我能够对Id 属性使用RegisterClassMap方法(来自MongoDB C# Driver docs ):

BsonClassMap.RegisterClassMap<Employee>(cm => {
    cm.AutoMap();
    cm.IdMemberMap.SetRepresentation(BsonType.ObjectId);
});

但是我不知道如何指定一个字符串数组(或者List<string>在我的情况下是 a )实际上是一个ObjectIds数组。

请帮忙!

4

1 回答 1

0

好的,我终于找到了我要找的东西。非常感谢craiggwilson 在 Google Groups 上的帖子,如果没有阅读该帖子,我不会想到尝试以下内容。

对于 C# 中的以下“内容”类

public class Content
{
    public List<string> AncestorIds { get; set; }

    public string ParentId { get; set; }

    public string Title { get; set; }

    public string Body { get; set; }
}

它可以在应用程序启动时执行以下代码:

BsonClassMap.RegisterClassMap<Content>(cm =>
{
    cm.AutoMap();

    // Single ObjectId represented in C# as a string
    cm.GetMemberMap(c => c.ParentId).SetRepresentation(BsonType.ObjectId);

    // Array of ObjectIds represented in C# as a List<string>
    cm.GetMemberMap(c => c.AncestorIds).SetSerializationOptions(new ArraySerializationOptions(new RepresentationSerializationOptions(BsonType.ObjectId)));
});
于 2012-10-30T14:21:50.213 回答