NHibernate Session.Evict有什么作用?

DaS*_*art 20 nhibernate evict

以下代码段的作用是什么?为什么要使用Evict

private void DoEvict(customer cust)
{
    AddressRepository.Evict(cust.Address);
    cust.Address = AddressRepository.Get(cust.Address.Id);
}
Run Code Online (Sandbox Code Playgroud)

pso*_*usa 22

evict从NHibernate第一级缓存中删除了特定的"地址"引用.

如果未执行代码片段中的第一条指令,则第二条指令将从第一级缓存中返回,而不是从数据库中提取项目.