如果我的Order实体具有OrderDetails列表,我可以使用NHibernateUtil.Initialize(Order.Details)轻松加载详细信息以及顺序。所以显然NHibernate拥有所有的信息来生成sql语句。 但是,如何在不手动创建条件的情况下查询数据库的详细信息(类似于Entity Framework中的CreateSourceQuery)? 有没有像NHibernateUtil.GetList(Order.Details)?在NHibernate中重新加载关联/相关集合
更新: 使用Darin的答案,这是我最终结束了。这是通用的,我可以则会使用Criteria API或HQL落实到实体基类
Dim entity as EntityBase
Dim queryString = String.Format("select entityAlias.{1} from {0} entityAlias where entityAlias.id = :ID", entity.GetType.Name, collectionPropertyName)
Dim query = Session.CreateQuery(queryString).SetParameter("ID", entity.ID)
Return query.List
谢谢。这正是我所期待的。我从来没有想过使用过滤器。我其实一直在做查询(你的第二个例子)。 – 2009-11-03 09:19:06