Ответ 1
Вы можете использовать session.Evict(persistentObject)
, чтобы вырезать постоянный объект из сеанса. Это приведет к удалению объекта из кеша 1-го уровня, что позволит вам очистить сеанс.
В моем сеансе nhibenate я Mapping object с AutoMapper и в действии afterMap я создаю новый экземпляр объекта, потому что я извлекаю объект из базы данных для сравнения свойств. Таким образом, AutoMapper создает два экземпляра одного объекта с одинаковым идентификатором. Когда я пытаюсь зафиксировать сеанс, я получаю ошибку, что я должен возражать с тем же ID.
Итак, я хочу отключить объект, который я извлекаю после сравнения свойств. После этого я могу выполнить сеанс
Как я это делаю?
Спасибо!
Вы можете использовать session.Evict(persistentObject)
, чтобы вырезать постоянный объект из сеанса. Это приведет к удалению объекта из кеша 1-го уровня, что позволит вам очистить сеанс.