Я знаю, что это старый пост, но почему бы и нет ...
// This call saves the Supply to the Supply table but none of the Amounts
Этот комментарий в SaveIt () указывает на то, что вы вызываете сохранение в предложении, а не суммы.
В этом случае у вас неправильная логика.
Итак, чтобы это исправить:
SupplyMap -> Инверс не должен быть там для Сумм.
HasMany<SupplyAmount>(x => x.Amounts).Cascade.SaveUpdate();
SupplyAmountMap ->
удалить ссылки (x => x.Supply, "SupplyId"). Cascade.SaveUpdate ();
Замените его на
References<Supply>(x=>x.Supply);
Теперь вы должны быть правы, чтобы вызывать сохранение только для вашего объекта снабжения, и оно будет каскадно уменьшаться до сумм.
Session.Save(supply);
В вашем тесте после того, как вы организуете поставку и поставку, убедитесь, что вы позвонили
Session.Flush ()
после сохранения, чтобы заставить его войти.
Это не так важно в коде, как вы обычно выполняете транзакции перед вызовом объекта предложения.
Ура,
Choco
Кроме того, как примечание стороны, обычно не очень хорошая идея, чтобы быть многословным с беглыми отображениями. пусть вещи по умолчанию делают то же самое, поэтому я бы рекомендовал использовать подсказки по именованию столбцов.