我有这个设置:父,有一个儿童的集合.
class Parent {
IList<Child> Childs { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
HQL:
("来自父母").期货();
("来自孩子").未来();
foreach(Parent p in result) {
foreach(Child c in p.Childs) {
}
}
Run Code Online (Sandbox Code Playgroud)
这给出了经典的N + 1问题.两个SQL语句在1次往返中发送到服务器,因此所有数据都存在于一级缓存中,那么为什么NH仍然存在每个子进程的SQL.
版本3.1.0.400