我目前正在尝试学习nHibernate,并且我已经解决了使用其id获取实体的问题。我以一种可能不太干净的方式完成它(但它有效 - 但我还不太满意):
public Patient GetPatientById(Guid patientId)
{
using (ISession session = _sessionFactory.OpenSession())
{
return session.QueryOver<Patient>().Fetch(x => x.Appointments).Eager
.Where(k => k.Id == patientId).List().FirstOrDefault();
}
}
我还找到了一种通过特殊实用程序初始化Appointments集合的方法:
public Patient GetPatientById(Guid patientId)
{
using (ISession session = _sessionFactory.OpenSession())
{
var entity = session.Get<Patient>(patientId);
NHibernateUtil.Initialize(entity.Appointments);
return entity;
}
}
是否有任何可能的方法以更优雅和干净的方式急切加载该系列?