我需要检查一组连接的实体,如果我在给定的会话上调用Flush(),将会持续这些实体。 (我正在写访问会话的通用管道的一部分保存,它可以在任何数量的情况下使用之前的代码。)NHibernate的 - 如何迭代持续的实体连接到会话?
我发现自己希望有就像
MySession的方法。 GetPersistentEntities()
所以我可以检查它们并执行一些预处理。
任何人都知道一种方法来做到这一点?
感谢,
杰夫
我需要检查一组连接的实体,如果我在给定的会话上调用Flush(),将会持续这些实体。 (我正在写访问会话的通用管道的一部分保存,它可以在任何数量的情况下使用之前的代码。)NHibernate的 - 如何迭代持续的实体连接到会话?
我发现自己希望有就像
MySession的方法。 GetPersistentEntities()
所以我可以检查它们并执行一些预处理。
任何人都知道一种方法来做到这一点?
感谢,
杰夫
不,NHibernate的ISession的不公开这样的事情。您可以:
你可以在会话上下文中有点“入侵”:
ISession session;
var sessionContext = session.GetSessionImplementation().PersistenceContext;
foreach(var entity in sessionContext.EntitiesByKey.Values)
{
// do anything with the entity
}
但是,在你的情况下,我会使用flush事件侦听器或拦截器。