2010-07-06 4 views
0

이 문제에 대한 해결책이 필요합니다. ISt.Add 메서드를 차단하여 children.Parent = parent가 아니라 jus parent.Children.Add (children) 메서드를 가로채는 방법 ;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

0
public IList<MyClass> Childrens 
+0

왜 IList의 대신 ISET ? – Luka

관련 문제