如果我的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