2013-05-29 90 views
0

有沒有一種方法(在流利NHibernate)級聯刪除表中有沒有直接關係的表?我有以下情況:流暢的NHibernate級聯刪除當表沒有關係

Relationship Diagram

我會像發生針對授權進行級聯刪除時CustomerProduct被刪除(其中auth.Customer = cp.Customer和auth.Product = CP 。產品)。

直到最近,授權確實與CustomerProduct有直接關係,但它已經被打破,所以我無法以這種方式解決問題。

我希望做這樣的事情(從CustomerProduct映射):

 mapping.HasMany<Authorization>(x => x.Authorizations) 
      .KeyColumn("ProductID") 
      .KeyColumn("CustomerID") 
      .Cascade.AllDeleteOrphan(); 

但顯然這不會工作,因爲有一個在CustomerProduct沒有授權成員(至少我認爲這就是爲什麼它不工作^^)。

+1

這應該在業務層解決,因爲有一塊業務邏輯知道如何刪除客戶與產品的關係。 –

+0

@StefanSteinegger你是說我應該在我的CustomerProductController(我在asp.Net MVC中工作)而不是在映射中管理這個?我當然可以做,但我猶豫了,因爲我沒有看到控制器的其他例子與不在其直接權限範圍內的實體搞混...... – technophebe

+0

控制器可能在創建/更改或刪除某些內容時發送事件,另一個控制器可能會清理自己的東西。 –

回答

1

這應該在業務層解決,因爲有一塊業務邏輯知道如何刪除客戶與產品的關係。