0
我想要在当前会话中加载所有持久对象。获取当前会话中加载的所有对象
我知道与会话相关的持久性上下文缓存,包含当前会话中加载的所有对象的字典。任何人都可以告诉我如何知道在IPersistenceContext缓存中加载的所有对象?
//创建我们的NHibernate会话工厂
var sessionFactory = CreateSessionFactory();
using (var session = sessionFactory.OpenSession())
{
Employee emp;
// populate the database
using (var transaction = session.BeginTransaction())
{
emp = session.Query<Employee>().Where(x => x.Name == "Bargin Basin").FirstOrDefault();
var entries = session.GetSessionImplementation().PersistenceContext.EntityEntries;
foreach (var item in entries)
{
var entityEntry = entries[item];
//I want the objects of my type like..
//Employee persistedEmp = entityEntry as Employee;
}
}
}
它返回密钥的EntityEntry对象。我想要我已知类型的对象。即我entites类的对象。 – Deepak
@Deepak仔细查看我的代码。我正在访问'EntityEntries'字典的'Keys'属性。这个集合实际上包含实体对象,因为它们是这个字典中的键('EntityEntry'对象是值)。 – cremor
谢谢....我明白了。钥匙本身就是我的对象.... – Deepak