0

插入特定类型的实体后,我想确保它始终从会话中逐出。

看来我可以用 IPostInsertEventListener 做到这一点,但我不确定它是否安全。

这会起作用吗:

public class LogUpdatesPostInsertEventListener : IPostInsertEventListener
{
    public void OnPostInsert(PostInsertEvent insertEvent)
    {
        var entity = insertEvent.Entity;

        if (entity is Foo)
        {
            insertEvent.Session.Evict(entity);
        }
    }
}
4

1 回答 1

0

我认为鉴于您想要实现的代码看起来是正确的。我想知道您是否应该添加显式Session.Flush()以确保插入已提交到数据库,但这取决于您的要求。

此外,请确保您在一个工作单元中只使用一个会话,例如一个 HTTP 请求。

于 2012-05-19T10:48:48.157 回答