通过获取集合获取id(在nHibernate中急切加载)

时间:2016-04-23 23:13:41

标签: c# nhibernate fluent-nhibernate

我目前正在尝试学习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;
        }
    }

是否有任何可能的方法以更优雅和干净的方式急切加载该系列?

0 个答案:

没有答案