我有标准:
ICriteria criteria = Session.CreateCriteria<Entity>()
.SetFetchMode("Entity1", FetchMode.Eager)
.SetFetchMode("Entity2", FetchMode.Select)
.SetMaxResults(max)
.SetFirstResult(min)
.Add(Restrictions.Eq("Available", true))
.CreateAlias("Entity3", "b")//, NHibernate.SqlCommand.JoinType.InnerJoin)
.Add(Restrictions.Eq("b.Name", variable))
.SetResultTransformer(new NHibernate.Transform.DistinctRootEntityResultTransformer());
执行此查询时,将返回Entity3中的所有字段。 如何执行它并且只有结果只有引用的Entity1的Entity对象和没有Entity3的Entity2?
答案 0 :(得分:0)
也许这可能有所帮助。
IList criteria2 = session.CreateCriteria(typeof(class1), "cl1")
.CreateAlias("subclass1.subclass2", "s2")
.CreateAlias("subclass1.subclass3", "s3")
.SetProjection(Projections.ProjectionList()
.Add(Projections.Property("s2.NAME"))
.Add(Projections.Property("s3.CODE")))
.List();
您可以根据需要深入到映射类中以创建别名。