私は、2つのオブジェクトEmployeeとDepartmentのデータモデルを作成しています。従業員には部門のリストがあり、部門には従業員のリストがあります。nhibernateと同期して多対多の関係を維持する方法は?
class Employee{
private IList<Department> _departments;
public Employee()
{
_departments = new List<Department>();
}
public virtual ReadOnlyCollection<Department> Departments{
get {return new ReadOnlyCollection<Department>(_departments);}
}
}
class Department{
private IList<Employee> _employees;
public Department()
{
_departments = new List<Employee>();
}
public virtual ReadOnlyCollection<Employee> Employees{
get {return new ReadOnlyCollection<Employee>(_employees);}
}
}
どのように私はNHibernateはと同期して、それを作るために、Employeeクラスに部門クラスのaddEmployeeメソッドとAddDepartmentメソッドを書くのですか? 私はEmployeeクラス
public virtual void AddDepartment(Department department)
{
if (!department.Employees.Contains(this))
{
department.Employees.Add(this);
}
_departments.Add(department);
}
でこれを書いたしかし、私は、誰かの助けをwork.Canするためにそれを期待どおりに動作しdoesntの。
:
マイ
Group
マッピングは次のようになります。私
User
マッピングは次のようになります私はこれらのシナリオをどのように処理するのかについて以下の例を掲載しましたが、なぜコードが期待?あなたは何を期待していますか? –db.session.Save(Employee)のようにこれを保存しようとすると、循環依存が発生します。それは部署を持つ従業員に再開し、部署内に従業員がいるなど..円形です。それが正しいかどうかはわかりません。間違っていると誰かが私を正すことができますか? – 8GB