NHibernate Session.Evict有什么作用?

时间:2011-05-20 09:17:12

标签: nhibernate evict

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

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

2 个答案:

答案 0 :(得分:22)

evict从NHibernate第一级缓存中删除了特定的“Address”引用。

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

答案 1 :(得分:1)

Session.evict()用于将特定对象从持久状态移除到分离状态。