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>しかし、文字列の配列 (または私の場合は) が実際にObjectIdsの配列であることを指定する方法がわかりません。

助けてください!

4

1 に答える 1

0

わかりました、やっと探していたものを見つけました。このスレッドを読まなければ、次のことを試してみようとは思わなかったでしょう。

C# の次の「Content」クラスの場合

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 に答える