我如何急切地获取一个集合,但只是N个第一项?
使用此代码有效,但有没有“官方途径”来实现这一目标?
public Gallery GetById(int id)
{
var session = GetSession();
var criteria = session.CreateCriteria<Gallery>()
.Add(Expression.Eq("Id", id))
.SetFetchMode("Pictures", FetchMode.Eager)
.CreateAlias("Pictures", "p")
.SetFirstResult(0)
.SetMaxResults(24)
;
return criteria.UniqueResult<Gallery>();
}
在这种情况下,我绑定Gallery
的结果,这无论如何都是唯一的结果,但我想绑定Pictures
的结果。
答案 0 :(得分:0)
您的代码正常运行,完全可以接受。如果你想总是急切地获取,你可以在你的表映射配置(HBM,Fluent或你使用的任何解决方案)中设置它,然后明确告诉它不要用于你不想急切地取。这两种方式都很好,可以接受。根据您的项目需求和团队编码风格,使用更方便或更安全的方式。