0

私はdb4oを初めて使用し、次のことが可能かどうかを調べようとしています。

public class Page
{ 
    public Guid ID {get;set;}
    public Page Parent {get;set;}
    public IList<Page> Children {get;set;}
    public String Name {get;set;}
    public String Depth {get;set;}
}

ページを保存すると、親のみになります。IE

Page p1 = new Page() { 
    ID = Guid.NewGuid(),
    Name = "p1",
    Parent = null
};
Page p2 = new Page() { 
    ID = Guid.NewGuid(),
    Name = "p2",
    Parent = p1
};
Page p3 = new Page() { 
    ID = Guid.NewGuid(),
    Name = "p3",
    Parent = p1
};

p1をロードするとき、2人の子を設定する方法はありますか?

4

3 に答える 3

1

Db4O は、データストアから p1 をロードするとすぐに子のコレクションもロードするので、可能です...

于 2010-02-07T14:25:20.517 に答える
1

これを行う最も簡単な方法は、実際にはプロパティ呼び出しを使用して接続することです。このような:

public class Page
{ 
    private Page _parent;
    public Page Parent {
        get{return _parent;}
        set{
            value.Children.Add(this);
            this._parent = value;
        }
    }
    public IList<Page> Children {get;set;}

    // omitted the the other properties
}

Page-instance を Page.Parent に割り当てるとすぐに、Page は Page.Children-property にあります。

これは解決策ですか?

于 2010-02-03T22:14:21.397 に答える
0

DB4O についてはわかりませんが、これにはIComposite パターンの使用を検討する必要があります。

于 2010-02-07T14:14:42.420 に答える