2
在我的域中,Employee和Department有一对多的双向关系;为了让Child Employee同步这个,我有一个'Internal'访问字段,用于部门中员工的Set(Iesi for NHibernate),否则这些员工只能公开读取。像这样:nhibernate的双向关系模式
系类:
protected internal ISet<Employee> _staff;
public virtual ReadOnlyCollection<Employee> Staff {
get { return new List<Employee>(_staff).AsReadOnly(); }
}
public virtual void AddStaff(Employee emp) {
emp.Department = this; }
}
Employee类:
private Department _department;
public virtual Department Department {
set {
// check valid value, etc.
value._staff.Add(this);
}
}
我改变了我的(FNH)映射AsField(Prefix.Underscore)访问,但因为我不能使部门虚拟NH不开心。我想我可以让这个领域成为一个虚拟财产,并强制喂它,但是这感觉就像我让域类过度地意识到持久性。
我学习既NH和FNH,我知道我需要在映射关系良好的引物,但我对这个职位的主要问题是,在我的领域类的逻辑:
1)这是一个很好的C#编程模式在一个双重关系只读设置?
2)什么是最好的方法,使其更有用NHibernate?
感谢您的分享!
Berryl
嗨杰米 对不起,迟到的信用到期,因为这运作良好。你认为有可能翻转逻辑并让_staff ISet在内部可见吗?如果是这样的话,映射怎么看呢? 再次感谢您的良好回应。 – Berryl 2009-05-02 19:26:26