オブジェクトモデルをNHibernateにマップしたいと思います。私のコンセプトにはトリッキーな部分が1つあり、NHibernateでこれを実行できるかどうかはわかりません。
木のコレクションが欲しいです。私には2つのクラスがあります(以下、重要なプロパティのみが示されています)。Componentはツリーのノードであり、ComponentGroupはツリーのコレクションです。
public class Component
{
public Component Parent { get; set; }
public IList<Component> SubComponents { get; set; }
public ComponentGroup Group { get; set; }
}
public class ComponentGroup
{
public IList<Component> Components { get; set; }
}
ここで、各コンポーネントにそれが属するComponentGroupを認識させたいので、すべてのコンポーネントからComponentGroup(グループプロパティ)への参照が必要です。ただし、ComponentGroupには、ルートノード(直接の子)のコレクション(コンポーネントコレクション)のみを含める必要があります。したがって、これは1対半分のマッピングのようなものです;)「1つの」側は「多くの」側からのいくつかのアイテムのみを参照します。
NHibernateを使用してこのようなものをマッピングする方法について何かアイデアはありますか?