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