Свободное отображение NHibernate один-ко-многим

У меня есть следующие 2 класса:

Advert

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; }

В БД моя таблица AdvertImages имеет FK "AdvertId". которая относится к таблице Adverts, которая имеет PK "Id".

Это отображение «один ко многим», в котором одно объявление может иметь много изображений.

Мои беглые отображения NHibernate (отредактированные для краткости):

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");

Я создаю новый экземплярAdvert в коде, затем заполнениеAdvertImages свойство (рекламы) сList<AdvertImage>.

Когда я продолжаю настаиватьAdvert Для объекта БД я бы хотел, чтобы AdvertImages был вставлен в их таблицу AdvertImages, но из-за связи между двумя таблицами мне нужно, чтобы вставка Advert выполнялась первой, так как генерируется PK Id, который затем можно вставить в таблице AdvertImages. (Когда я создаю свой список AdvertImage, я заполняю свойство Filename, но, очевидно, у меня нет нового AdvertId на этом этапе, поэтому я хочу, чтобы он заполнялся, когда реклама сохраняется в БД).

Я попытался поэкспериментировать с различными настройками Inverse () и Cascade, но пока не удалось. Может кто-нибудь помочь, пожалуйста?

Ответы на вопрос(3)

Ваш ответ на вопрос