Допустим, у меня есть две сущности: Stable
и Pony
.
Stable
имеет IList<Pony>
с отображением HasMany
, настроенным для Cascade.All()
.
Это означает, что если я сделаю session.Save(myStable)
, каждый Pony
в коллекции будет сохранен.
Однако что произойдет, если я сделаю это?
Pony myLittlePony = new Pony(Color.Brown);
Stable myStable = new Stable(WoodTypes.RichMahogany);
myStable.Ponies.Add(myLittlePony);
session.Save(myStable);
session.Save(myLittlePony);
Будет ли NHibernate пытаться сохранить myLittlePony
дважды ? или NHibernate достаточно «умен», чтобы знать, что myLittlePony
уже сохранен в БД?
Есть ли какие-либо последствия для производительности от выполнения чего-то подобного?