я следующие 2 класса:Fluent NHibernate один-ко-многим
объявления
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 идентификатора.
Это сопоставление «один-ко-многим», поскольку одно объявление может иметь много изображений.
Моего Fluent 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
prope rty (из объявления) с List<AdvertImage>
.
Когда я иду, чтобы сохранить свой объект Advert
в БД, я хотел бы, чтобы объявления были помещены в их таблицу AdvertImages, но из-за взаимосвязи между двумя таблицами мне сначала нужно, чтобы вставка рекламы произошла, так что генерируется идентификатор PK, который затем может быть вставлен в таблицу AdvertImages. (Когда я создаю свой список AdvertImage, я заполняю свойство Filename, но, очевидно, на этом этапе нет нового объявления, поэтому хочу, чтобы это было заполнено, когда объявление сохраняется в БД).
Я пробовал экспериментировать с различными настройками Inverse() и Cascade, но пока не удалось. Может ли кто-нибудь помочь?
Спасибо Cole W и приветствуем советы по методам добавления и удаления. – marcusstarnes