Having got into trouble, trying to evict, and even considered opening and closing sessions. It looks like there is enough free space in your code to consider creating a filtered get, i.e. Get all elements of the collection type, where the parent identifier is the parent. You may need to expand your repository or Tao depending on how you work with NH, but as others have said, it's hard to be more specific without an example. The main thing is that you get the child objects in the request for this type, filtered by the parent identifier.
This will be a new get, so you will get new or changed objects created by some other process, and then you can set this collection as a collection in the parent object. NH must overcome this when trying to save, as it can make assumptions about your facilities and keep or update as needed. This can be useful for you if there is a possibility of a delay in the time between receiving the parent and saving it again.
The problem with this approach is that a merge type operation is required. You might want to add any new objects that were created in the process so that you do not lose your changes when updating the collection. Hope this helps, give us more information if you are still stuck.
source share