Что делает NHibernate Session.Evict? - PullRequest
20 голосов
/ 20 мая 2011

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

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

Ответы [ 2 ]

22 голосов
/ 20 мая 2011

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

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

1 голос
/ 06 декабря 2017

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

...