2009-08-06 87 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)工作。

回答