0

我找到了这段代码:

    public virtual void Update(T entity) {
        Logger.Debug("Update {0}", entity);
        Session.Evict(entity);
        Session.Merge(entity);
    }

你能解释一下在会话中调用更新的优点和缺点吗?为什么这样有效,这段代码背后的机制是什么?是不是太hacky了?

4

1 回答 1

0

Session.Evict将从会话中逐出单个对象,例如,如果您已经obj 在会话中并且您尝试调用session.Update(entity)您将收到一个异常,指出这obj是在会话中并且您无法更新。

Session.Merge将单个对象与会话(缓存)上的现有对象合并并更新。

看看:https ://stackoverflow.com/a/9161057/316799

于 2013-05-15T15:28:58.557 回答