我有这样的数据模型:
class Hand {
public int id;
...
}
class Person {
public int id;
public string name;
public IList<Hand> hands;
...
}
要从数据库中获取数据,我这样做:
ICriteria criteria = databaseSession.CreateCriteria(typeof(Person));
ProjectionList projections = Projections.ProjectionList();
projections
.Add(Projections.Property("id").As("id"))
.Add(Projections.Property("name").As("name"))
.Add(Projections.Property("hands").As("hands"));
projections.Add(Projections.GroupProperty("id"));
projections.Add(Projections.Count("id"), "count");
criteria.SetProjection(projections);
criteria.SetResultTransformer(
NHibernate.Transform.Transformers.AliasToBean(typeof(PersonDTO)));
但是 NHibernate 不会在 hands 属性中加载嵌套对象。它只是给出空值。谁能帮助我如何填充嵌套对象(超过一级深度)。使用预测而不是查询对我来说会更好。注意:在映射中不会有问题,因为当我加载没有任何投影的数据时,它工作得很好。