Есть 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 НЕ поддерживает функцию удаления-удаления-сироты для многих к одному, для одного.
Мне, вероятно, нужно что-то вроде соединения с компонентом ...
НО В ГЛУБИНЕ NH.
ОБНОВЛЕНИЕ: Джеймс в группах пользователей FNH предложил следующий синтаксис:
WithTable("other table", m =>
{
m.Component(...);
});
Но не повезло с этим: NotSupportedException: устарел
Он должен работать в v1 (upcomming) FNH.