我有三個實體:Customer,Device和LocationTag。從多個實體的集合中級聯刪除
客戶有一個LocationTags列表(無非是一個ID和一個說明)。他們也有一個設備列表。
設備帶有客戶位置標籤的子集,因此設備也具有位置標籤列表(但僅限於客戶)。
如果我從客戶列表中刪除了一個LocationTag,我希望它也能級聯刪除設備中的LocationTag列表。目前,我有它的工作,但在域對象類中有手動代碼,但在我看來違反DRY。
是否有可能通過流利的NHibernate映射來實現這一點?
簡體流利NHib映射:
顧客
public CustomerMap()
{
WithTable("Customers");
Id(x => x.ID)
.WithUnsavedValue(0)
.GeneratedBy.Identity();
Map(x => x.Name);
HasMany<LocationTag>(t => t.LocationTags).IsInverse();
HasMany<Device>(d => d.Devices).IsInverse();
}
設備
public DeviceMap()
{
WithTable("Devices");
Id(x => x.ID)
.WithUnsavedValue(0)
.GeneratedBy.Identity();
Map(x => x.Name);
HasMany<LocationTag>(x => x.LocationTags).IsInverse();
}
LocationTag
public LocationTagMap()
{
WithTable("LocationTags");
Id(x => x.ID)
.WithUnsavedValue(0)
.GeneratedBy.Identity();
Map(x => x.Description);
}
對;我的問題應該是,如果這樣的事情甚至可以在NHibernate映射中嘗試,而不是域對象邏輯。感謝詹姆斯的迴應。 – 2009-01-20 00:13:03