Составление карты в свободном NHibernate - PullRequest
0 голосов
/ 06 августа 2009

Есть 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 НЕ поддерживает функцию удаления-удаления-сироты для многих к одному, для одного.

Мне, вероятно, нужно что-то вроде соединения с компонентом ...
НО В ГЛУБИНЕ NH.

ОБНОВЛЕНИЕ: Джеймс в группах пользователей FNH предложил следующий синтаксис:

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

Но не повезло с этим: NotSupportedException: устарел
Он должен работать в v1 (upcomming) FNH.

1 Ответ

1 голос
/ 06 августа 2009

Вы можете отобразить как компонент?

Отображение с помощью языка: http://wiki.fluentnhibernate.org/show/StandardMappingComponents

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

...