Подтвердить что ты не робот

Что делает NHibernate Session.Evict?

Что делает следующий фрагмент кода? Почему использование Evict?

private void DoEvict(customer cust)
{
    AddressRepository.Evict(cust.Address);
    cust.Address = AddressRepository.Get(cust.Address.Id);
}
4b9b3361

Ответ 1

Вывод исключает эту специфическую ссылку "Адрес" из кеша первого уровня NHibernate.

Если первая инструкция в фрагменте кода не была выполнена, вторая, а не выборка из базы данных, просто вернет ее из кеша первого уровня.

Ответ 2

Session.evict() используется для удаления определенного объекта из состояния Persistent в состояние "Отдельно".