关于延迟加载的问题

cho*_*bo2 0 nhibernate lazy-loading

我正在使用nhibernate,我有一个问题.

假设我有一个与另一个对象(ObjectB)有某种关系的对象(ObjectA).

ObjectA -> TableA
ObjectB -> TableB
Run Code Online (Sandbox Code Playgroud)

现在我进行查询并从TableA获取结果,现在它在ObjectA中.

如果我这样做

int b = ObjectA.ObjectB.ColumnA;
Run Code Online (Sandbox Code Playgroud)

它会发出正确的查询吗?因为它正在进行延迟加载.

如果我这样做会发生什么

int b1 = ObjectA.ObjectB.ColumnA;
int b2 = ObjectA.ObjectB.ColumnA;
int b3 = ObjectA.ObjectB.ColumnA;
int b4 = ObjectA.ObjectB.ColumnA;
Run Code Online (Sandbox Code Playgroud)

这一切都在方法方法中一个接一个.你会去做5个查询还是只做一个?

如果我这样做怎么样

  int b1 = ObjectA.ObjectB.ColumnA;
  string b2 = ObjectA.ObjectB.ColumnB;
Run Code Online (Sandbox Code Playgroud)

这会引发2次查询还是一次?

Die*_*hon 6

所有这些方法只需一次调用即可加载ObjectB.

在那之后,它在记忆中; 为什么会再次进入DB?