NHibernate:插入后始终逐出实体
插入特定类型的实体后,我希望确保它始终从会话中退出 似乎我可以用IPostInsertEventListener做到这一点,但我不确定它是否安全 这是否有效:NHibernate:插入后始终逐出实体,nhibernate,Nhibernate,插入特定类型的实体后,我希望确保它始终从会话中退出 似乎我可以用IPostInsertEventListener做到这一点,但我不确定它是否安全 这是否有效: public class LogUpdatesPostInsertEventListener : IPostInsertEventListener { public void OnPostInsert(PostInsertEvent insertEvent) { var entity = insertEve
public class LogUpdatesPostInsertEventListener : IPostInsertEventListener
{
public void OnPostInsert(PostInsertEvent insertEvent)
{
var entity = insertEvent.Entity;
if (entity is Foo)
{
insertEvent.Session.Evict(entity);
}
}
}
我认为,考虑到您想要实现的目标,您拥有的代码看起来是正确的。我想知道您是否应该添加一个显式的
Session.Flush()
,以确保插入被提交到数据库,但这取决于您的要求
此外,请确保在一个工作单元(例如一个HTTP请求)中只使用一个会话。为什么要这样做???@DiegoMijelshon-即登录到数据库。应用程序可以生成大量这样的“只写”记录。这就是为什么它们不应该存储在会话中。一般来说,nhibernate似乎不是最好的工具,但可能有一种方法可以正确配置它。