我的创建查询(HQL)如下所示:
Session.CreateQuery(
"select a from Article as a join a.Categories c where c.ID = :ID")
.SetInt32("ID", categoryId)
答案 0 :(得分:3)
直接向前看起来像这样:
ICriteria query = Session
.CreateCriteria<Article>("a")
.CreateCriteria("a.Categories", "c")
.Add(Expression.Eq("c.ID", categoryId)
还有IdEq表达式,但你不能说哪个id(哪个实体/别名),所以我不相信它。
ICriteria query = Session
.CreateCriteria<Article>("a")
.CreateCriteria("a.Categories", "c")
.Add(Expression.IdEq(categoryId) // a.ID or c.ID?
加入集合时出现问题。您将获得与文章和类别的连接将产生的结果一样多的结果,这可以使文章成倍增加。
使用结果转换器或子查询。请参阅this post。