2009-08-06 4 views
0

Es gibt 2 Klassen: Produkt und Bild.Kartenzusammensetzung in flüssigem NHibernate

  1. Das Produkt hat nur ein Bild.
  2. Keine Waisen Bilder können existieren. Diese

repräsentieren Zusammensetzung Beziehung in UML, das bedeutet:
zuordnen product.image ein newImage Ergebnisse in folgenden

  1. alte Bild löschen;
  2. neues Bild einfügen;
  3. Link neues Bild auf das Produkt.

Jetzt muss ich es an die RDBMS-Tabellen (meta-Code) zur Karte:

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

Die Frage ist, wie es zu tun Fluent NHibernate verwenden.
Bitte beachten Sie:

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

ist nicht anwendbar - sie die Waise Bild nicht löschen NIMMT.

Auch NH nicht unterstützt alle-löschen-Waise für viele-zu-eins, auf-zu-eins.

Ich brauche wahrscheinlich etwas wie Join mit Komponente ...
ABER IN FLUENT NH.

UPDATE: James in FNH Benutzergruppen vorgeschlagen, diese Syntax:

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

Aber kein Glück mit ihm: NotSupportedException: abgekündigt
Es sollte in v1 (anstende) von FNH arbeiten.

Antwort