次の列を持つ階層 (ツリー構造) SQL Server テーブル TEmployee があります。
Id bigint identity(1,1) not null
FirstName nvarhcar(50) not null
LastName nvarchar(50) not null
ManagerId bignint null
列 ID は主キーです。各従業員にはマネージャーがいます。その場合、彼/彼女自身の列 ManagerId の値は、別のマネージャー従業員行の値 Id を参照します。たとえば、テーブル TEmployee のいくつかのエントリ:
1 John Doe null
2 Jane Smith 1
3 Keith Johnson 1
4 Fox Lynson 2
5 Kim McFeinstein 4
...
従業員 John Doe にはマネージャーがいません。しかし、彼はジェーン・スミスとキース・ジョンソンのマネージャーです。Kim McFeinstein のマネージャーは Fox Lynson です。
Fluent NHibernate マッピングを使用してドメイン モデル クラスとマッピング クラスを作成する方法を知りたいです。また、クラスのコードをマッピングする際に、カスケード削除の良い方法を知りたいです。つまり、John Doe を削除すると、そのすべての子 (John Doe が管理する従業員) も再帰的に削除されます。
助けてください。ありがとうございました。
ドメインモデルクラスですが、そのソースコードについてはわかりません:
public class Employee
{
public virtual long Id {get;set;}
public virtual string FirstName {get;set;}
public virtual string LastName {get;set;}
public virtual Employee Manager {get;set;} // not sure here ???
}
マッピングクラスですが、そのソースコードについてもわかりません:
public class EmployeeMap : MapClass<Employee>
{
Table("TEmployee");
SchemaAction.None();
// not sure about following codes
???
}