在我的 NHibernate 映射中:
(1) “个人”包含姓名、地址、电话和注册信息的集合。(2) “注册”包含 CourseOfferings、状态和标志的集合。
以下为 Enrollments 和 Flags 返回具有多个结果(笛卡尔)的结果。顶层(即个人)是不同的。
var query = session.QueryOver<Individual>()
.Left.JoinAlias(i => i.Names, () => name)
.Left.JoinAlias(i => i.Addresses, () => address)
.Left.JoinAlias(i => i.Phones, () => phone)
.Where(i => name.ToDate == null)
.Where(i => phone.ToDate == null)
.Where(i => address.ToDate == null)
.Where(i=>i.ContactId ==748)
.OrderBy(Projections.Property(() => name.NameOther)).Asc
.Left.JoinQueryOver(i => i.Enrolments, () => enrolment)
.Left.JoinAlias(s => s.Statuses, () => status)
.Left.JoinAlias(s => s.CourseOffering, () => courseOffering)
.Left.JoinAlias(s => s.Flags, () => flag)
.Where(s => status.ToDate == null)
.Where(s => flag.ToDate == null)
//.TransformUsing(Transformers.AliasToBean<StudentEnrolment>())
.TransformUsing(Transformers.DistinctRootEntity)
非常感谢任何帮助。
在此先感谢,达梅什