NHibernate:插入后总是逐出实体

时间:2012-05-17 06:28:01

标签: nhibernate

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

我似乎可以使用IPostInsertEventListener来做这件事,但我不确定它是否安全。

这会起作用吗?

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

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

1 个答案:

答案 0 :(得分:0)

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

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