Fluent NHibernate Eins-Zu-Viele-Zuordnung

Habe ich die folgenden 2 Klassen:

Anzeige

public virtual int Id { get; set;
public virtual IList<AdvertImage> AdvertImages { get; set; }

AdvertImage

public virtual int Id { get; set; }
public virtual string Filename { get; set;
public virtual Advert Advert { get; set; }

In der DB, meine AdvertImages Tisch hat die FK 'AdvertId", die bezieht sich auf die Werbung Tabelle, die die PK von 'Id'.

Dies ist eine Eins-Zu-Viele-Zuordnung, dass eine Anzeige kann viele Bilder.

Meine Fluent NHibernate-mappings (bearbeitet für die Kürze) sind:

AdvertMap

Id(x => x.Id)
  .GeneratedBy.Identity();
...
HasMany(x => x.AdvertImages)
  .KeyColumn("AdvertId")
  .Inverse();
...
Table("Adverts");

AdvertImageMap

Id(x => x.Id)
  .GeneratedBy.Identity();
...
References(x => x.Advert)
  .Column("AdvertId");
...
Table("AdvertImages");

Ich bin erstellen einer neuen Instanz der Advert im code, dann Auffüllen der AdvertImages Eigenschaft (der Anzeige) mit einem List<AdvertImage>.

Wenn ich nach bestehen meiner Advert Objekt in die DB, ich möchte die AdvertImages eingefügt werden, in Ihrer AdvertImages Tabelle, aber aufgrund der Beziehung zwischen den 2 Tabellen, ich brauche das Inserat insertion passieren erste, so wie der PK-Id generiert, die dann eingefügt werden, in der AdvertImages Tabelle. (Wenn ich meine Liste der AdvertImage, ich bin bevölkern die Filename-Eigenschaft, aber offensichtlich nicht das neue AdvertId in diesem Stadium, so soll aufgefüllt werden, wenn die Anzeige beibehalten wird, um die DB).

Ich habe versucht, das Experimentieren mit verschiedenen Inverse() und Cascade-Einstellungen aber noch nicht gelungen, noch. Kann mir jemand bitte helfen?

Schreibe einen Kommentar