2009-08-06 81 views
0

有2個類:產品和圖像。流利NHibernate地圖組合

  1. 該產品只有一個圖像。
  2. 不存在孤立圖像。

這表示在UML組合物關係,這意味着:
勘定Product.Image一個newImage結果在以下

  1. 刪除舊圖像;
  2. 插入新圖像;
  3. 將新圖像鏈接到產品。

現在我需要把它映射到RDBMS表(元代碼):

Product (Id primary key, ImageId int references Image(id)) 
Image(Id primary key, Content) 

的問題是如何使用功能NHibernate做到這一點。
請注意:

productMap.References(x => x.Image).Cascade.All() 

是不適用 - 它不會刪除孤兒圖像。

此外,NH並不支持多對一,一對一的全刪除孤兒。

我可能需要像加入組件一樣...
但在FLUENT NH。

UPDATE:詹姆斯在FNH用戶羣體提出的語法如下:

WithTable("other table", m => 
{ 
    m.Component(...); 
}); 

但它沒有運氣:NotSupportedException異常:過時
它應該在FNH的V1(upcomming)工作。

回答