2009-08-06 11 views
0

Il existe 2 classes: Produit et Image.Composition de la carte dans Fluent NHibernate

  1. Le produit a une seule image.
  2. Aucune image orpheline ne peut exister.

Cette représenter relation de composition en UML qui signifie:
Assigner Product.Image a Résultats de NewImage en suivant

  1. supprimer ancienne image;
  2. insérer une nouvelle image;
  3. lier une nouvelle image au produit.

Maintenant je dois mapper aux tables de SGBDR (méta-code):

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

La question est de savoir comment faire en utilisant Fluent NHibernate.
S'IL VOUS PLAÎT NOTE:

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

n'est pas applicable - elle ne supprime pas l'image orpheline.

Aussi NH ne prend pas en charge tout-supprimer-orphelin pour plusieurs-à-un, un-à-un.

J'ai probablement besoin de quelque chose comme joindre avec le composant ...
MAIS EN FLUENT NH.

MISE À JOUR: James dans les groupes d'utilisateurs FNH a suggéré cette syntaxe:

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

Mais pas de chance avec elle: NotSupportedException: Obsolète
Il censé fonctionner dans v1 (upcomming) de FNH.

Répondre