gpt4 book ai didi

c# - 如何使用 C# 和 FluentNHibernate 在 NHibernate 中获取脏实体

转载 作者:太空狗 更新时间:2023-10-29 17:56:15 26 4
gpt4 key购买 nike

我需要获取在 NHibernate session 中使用的对象,这些对象在加载后被修改。

session 提供属性 IsDirty,指示天气对象是否在 session 中被修改。我需要一个方法来返回导致 IsDirty 返回 true 的对象。

如果您能提供一些 C# 代码来完成此任务,我将不胜感激。

最佳答案

根据 JBL 的评论我的代码找到所有“脏”对象

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);
}
}

关于c# - 如何使用 C# 和 FluentNHibernate 在 NHibernate 中获取脏实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19788665/

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