2010-07-06 49 views
0

我需要一個解決方案:如何攔截ISet.Add方法,所以我並不需要做children.Parent =父,但絕對parent.Children.Add(兒童) ;NHibernate的設置如何攔截add()方法

public class MyClass 
{ 
public MyClass Parent; 
public ISet<MyClass> Childrens; 
} 

我想這樣做:

var mc = new MyClass(); 
var mc2 = new MyClass(); 
mc.Childrens.Add(mc2); 

,而不是

var mc = new MyClass(); 
var mc2 = new MyClass(); 
mc.Childrens.Add(mc2); 
mc2.Parent=mc; 

回答

3

我簡單地創建一個AddChild方法,做到這一點。

您還可以使公衆屬性爲只讀集合作爲弗雷德裏克演示...

What is the best practice for readonly lists in NHibernate

+0

是的,我可以做到這一點,但這會使用一些人,我不能隱藏ISet.Add()方法,有些人會使用它。 – Luka 2010-07-07 06:44:27

0
public IList<MyClass> Childrens 
+0

爲什麼IList的而不是ISet的? – Luka 2010-07-07 07:34:06