有2类:产品和图像。
- 该产品只有一张图片。
- 不能存在孤立图像。
这表示UML 中的组合关系,这意味着:
将 Product.Image 分配给 newImage 会导致以下结果
- 删除旧图像;
- 插入新图像;
- 将新图像链接到产品。
现在我需要将它映射到 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) 中工作。