This is the expected behavior. I believe this should only happen when you use the bag matching strategy , which is apparently used in this example. The bag indicates that there is an unordered collection that may have duplicate items. Since the elements of the bag are not unique, NHibernate cannot tell when you easily added or removed an item from the bag. The easiest thing for NHibernate is to remove all associations and then add it again.
, "--" ( "--" ), , , , ( ), , . , , - , .