Является ли ваше приложение веб-приложением?
Использование Session.Merge(object)
В веб-приложениях вы иногда сериализуете и десериализуете объекты, затем вы создаете новые объекты, поэтому, даже если объекты NHibernate имеют одинаковый идентификатор, ссылка на объект будет другой. Затем вы пытаетесь обновить свой десериализованный объект, NHibernate обнаруживает другой объект с тем же идентификатором, но с другим указателем ссылки, поэтому не знает, какой объект в вашей памяти является «правильным».
В этих случаях используется метод Merge (), поэтому вы можете обновить объекты, которые есть в вашем веб-приложении.