У меня есть три объекта: пользователи, роли и разрешения.
Там два контроллера: UserController и RolePermissionController. Все контроллеры обернуты сессией Nhibernate.
Когда я создаю полномочия для заполнения роли, пользователь не существует. Поэтому я храню свой новый объект Permission в сеансе ASP.MVC. Я хочу сохранить новую роль с разрешения, когда я создам пользователя в UserController.
Но когда я заполнил новую роль с существующим разрешением (я тогда получил от БД по Nhibernate) и пошел к контроллеру пользователя новый объект, созданный роли, без вызова Session.SaveOrUpdate или каких-либо других методов.
Я пытался использовать Evict после заполнения моей новой роли существующими разрешениями:
Microsoft.Practices.ServiceLocation.ServiceLocator.Current.GetInstance<ISession>().Evict(newRole);
Но это не помогло.
Поэтому я хочу сказать Nhibernate - не сохраняйте сущность в этой транзакции (RolePermissionController) - и сохраняйте ее как подключенную к сущностям объекта User в UserController.