gpt4 book ai didi

nhibernate - 如何从 Nhibernate session 中获取已更改(脏)实体的列表?

转载 作者:行者123 更新时间:2023-12-01 10:13:42 26 4
gpt4 key购买 nike

我需要在刷新所有更改的实体之前编写一些业务逻辑。我尝试过的解决方案之一是 IPreUpdateEventListener。但是这个事件监听器已经将对象非规范化为键值。我需要在非规范化甚至刷新之前的一些东西。

所以问题是如何获取已更改(脏)实体的列表。

最佳答案

我检测脏实体的代码

        var dirtyObjects = new List<object>();
var sessionImpl = hsession.GetSessionImplementation();
foreach (NHibernate.Engine.EntityEntry entityEntry in sessionImpl.PersistenceContext.EntityEntries.Values)
{
var loadedState = entityEntry.LoadedState;
var o = sessionImpl.PersistenceContext.GetEntity(entityEntry.EntityKey);
var currentState = entityEntry.Persister.GetPropertyValues(o, sessionImpl.EntityMode);
if (entityEntry.Persister.FindDirty(currentState, loadedState, o, sessionImpl) != null)
{
dirtyObjects.Add(entityEntry);
}
}

关于nhibernate - 如何从 Nhibernate session 中获取已更改(脏)实体的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3133626/

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