Try looking here:
NHibernate - Difference between session.Merge and session.SaveOrUpdate?
from the above message:
You should use Merge () if you are trying to update objects that were disconnected from the session at one point, especially if persistent instances of these objects associated with the session are possible. Otherwise, using SaveOrUpdate () would throw an exception in this case.
source
share