20

下面的代码片段有什么作用?为什么使用Evict?

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

2 回答 2

24

驱逐从 NHibernate 第一级缓存中删除特定的“地址”引用。

如果您的代码片段中的第一条指令未执行,则第二条指令不会从数据库中获取项目,而是简单地从一级缓存中返回它。

于 2011-05-20T09:23:35.290 回答
2

Session.evict() 用于将特定对象从 Persistent 状态移除到 Detached 状态。

于 2017-12-06T09:21:33.450 回答