Mapeamento One-To-Many Fluent NHibernate

Eu tenho as seguintes 2 classes:

Anúncio

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

AnúncioImagem

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

No DB, minha tabela AdvertImages tem o FK 'AdvertId', que se refere à tabela de anúncios que tem o PK de 'Id'.

Este é um mapeamento de um para muitos, em que um anúncio pode ter muitas imagens.

Meus mapeamentos Fluent NHibernate (editados por brevidade) são:

AdvertMap

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

AdvertImageMapa

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

Estou criando uma nova instância deAdvert no código, em seguida, preenchendo oAdvertImages propriedade (de anúncio) com umList<AdvertImage>.

Quando eu vou persistirAdvert objeto para o DB, gostaria que o AdvertisImages fosse inserido em sua tabela AdvertisImages, mas devido ao relacionamento entre as 2 tabelas, eu preciso que a inserção do anúncio aconteça primeiro, assim como o PK Id é gerado, que pode ser inserido na tabela AdvertImages. (Quando eu crio minha lista de AdvertImage, estou preenchendo a propriedade Filename, mas obviamente não tenho o novo AdvertId nesse estágio, então quero que isso seja preenchido quando o anúncio for persistido no DB).

Eu tentei experimentar diferentes configurações Inverse () e Cascade, mas ainda não consegui. Alguém pode ajudar por favor?

questionAnswers(3)

yourAnswerToTheQuestion