Возможно, вам придется вручную очистить коллекцию и добавить все новые ratios
обратно в коллекцию.Я уверен, что вы не можете просто установить коллекцию для новой ссылки, как вы делаете выше.Когда вы это делаете, NHibernate не может отслеживать изменения в коллекции.
Я не проверял нижеприведенное, но оно должно быть ближе к тому, что вам нужно:
cat.Ratios.Clear();
foreach(Ration ratio in ratios)
cat.Ratios.Add(ratio);
Такжечто именно делают _repository.Save(cat)
и _repository.Update(cat)
?Если они вызывают ISession.Save
и ISession.Update
, в этом нет необходимости, поскольку в вашей коллекции «один ко многим» Ratios
вы, вероятно, настроили каскадирование.Вы можете просто зафиксировать транзакцию, так как NHibernate отслеживает изменения в сущностях / коллекциях с помощью ISession