1
nhibernateを使用して子オブジェクトの親オブジェクトを参照することはできますか?今まで私がやってきたのは、親クラスを子クラスに入れて、実行時に子クラスの親が何であるかを判断できるようにすることです。nhibernateリファレンス子クラスの親クラス
誰かが、再帰問題に遭遇することなく、親のIDだけでなく、私の子供の親オブジェクト全体を参照できることを教えてくれました。
Child child = (Child)session.Get(typeof(Child), childId);
その後、私はそうのような私PARENTIDのホールドを取得することができます:私は現在、やることはこれです
私が何をしたいのか
int parentId = child.ParentId;
はこれです:
Child child = (Child)session.Get(typeof(Child), childId);
int parentId = child.**Parent**.Id;
string parentName = child.**Parent**.Name
<class name="Parent" table="parents" lazy="false">
<id name="Id">
<generator class="identity" />
</id>
<property name="Name" />
<bag name="Children" cascade="all" lazy="false" >
<key column="ParentId" />
<one-to-many class="Child"/>
</bag>
<!-- Do I put anything in here to refer to my parent object in my child object?-->
</class>
<class name="Child" table="Children" lazy="false">
<id name="Id">
<generator class="identity" />
</id>
<property name="ParentId" />
<property name="Name" />
<!-- Do I put anything in here to refer to my parent object in my child object?-->
</class>
すべてのヘルプは、感謝感謝:ここ
は、私は私のクラス
public class Parent
{
public int Id { get; set; }
public string Name { get; set; }
// A list of child objects
public IList<Child> Children { get; set; }
}
public class Child
{
public int Id { get; set; }
public string Name { get; set; }
public int ParentId { get; set; } // this is what I use now
// public Parent MyParent { get; set; } // this is what I want to use
}
マイNHibernateはマッピングファイル
を定義する方法の一例です!
あなたは通常、 ''参照に加えて、プロパティとしてParentIdはを指定する必要はありません注意することは。それはMyParent.Idを介して参照できるためです。 –
Vadim
これはオプションです。しかし、プロパティがクラス内にある限り、私はそれをマッピングすることを強く勧めます。 – zoidbeck
天才!それは素晴らしいゾイドベックです、ありがとう! – adrianos