我需要檢查一組連接的實體,如果我在給定的會話上調用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事件偵聽器或攔截器。