gpt4 book ai didi

c# - NHibernate DefaultUpdateEventListener 和事件的问题

转载 作者:太空宇宙 更新时间:2023-11-03 14:32:59 27 4
gpt4 key购买 nike

我对 NHibernate 中的 DefaultUpdateEventListener 有疑问。我将更新 2 个对象,然后提交 session 。

第一个对象没有进入监听器,第二个对象到达那里。

所以我用反光板检查了一下是什么问题

首先 NHibernate 会调用 DefeultSaveOrUpdateEventListener 中的 PerformSaveOrUpdate,我看到了这个

protected virtual object PerformSaveOrUpdate(SaveOrUpdateEvent @event)
{
switch (this.GetEntityState(@event.Entity, @event.EntityName, @event.Entry, @event.Session))
{
case EntityState.Persistent:
return this.EntityIsPersistent(@event);

case EntityState.Detached:
this.EntityIsDetached(@event);
return null;
}
return this.EntityIsTransient(@event);
}

两个对象的区别在于状态第一个对象分离,第二个持久化

什么使对象在 NHibernate 中持久化或分离?

如果我知道这个例子有什么不同,我希望我能在我的代码中解决这个问题。

两个对象的负载与session.Load相等

最佳答案

我解决了实现
的问题 公共(public)覆盖 void OnSaveOrUpdate(SaveOrUpdateEvent @event)

此事件将在 PerformSaveOrUpdate(SaveOrUpdateEvent @event) 之前触发

此时对象是持久的还是分离的都没有关系

关于c# - NHibernate DefaultUpdateEventListener 和事件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2160648/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com