0

有2类:产品和图像。

  1. 该产品只有一张图片。
  2. 不能存在孤立图像。

这表示UML 中的组合关系,这意味着:
将 Product.Image 分配给 newImage 会导致以下结果

  1. 删除旧图像;
  2. 插入新图像;
  3. 将新图像链接到产品。

现在我需要将它映射到 RDBMS 表(元代码):

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

问题是如何使用 Fluent NHibernate 来做到这一点。
请注意:

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

不适用 - 它不会删除孤立图像。

此外,NH 不支持多对一、一对一的全删除孤儿。

我可能需要像加入组件这样的东西......
但在 FLUENT NH 中。

更新: FNH 用户组中的 James 建议使用以下语法:

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

但运气不好:NotSupportedException: Obsolete
它应该在 FNH 的 v1 (upcomming) 中工作。

4

1 回答 1

1

您可以像组件一样映射吗?

使用 Fluent 进行映射:http ://wiki.fluentnhibernate.org/show/StandardMappingComponents

NH 文档: http: //nhibernate.info/doc/nh/en/index.html#mapping-declaration-component

于 2009-08-06T02:15:16.487 回答