我有一个 Person 表,其中有许多字段是其他表的外键
所以我必须做出选择:
References(x => x.Field1).Fetch.Join();
References(x => x.Field2).Nullable().Fetch.Join();
References(x => x.Field3).Nullable().Fetch.Join();
References(x => x.Field4).Nullable().Fetch.Join();
或者
References(x => x.Field1).Fetch.Select();
References(x => x.Field2).Nullable().Fetch.Select();
References(x => x.Field3).Nullable().Fetch.Select();
References(x => x.Field4).Nullable().Fetch.Select();
我看到第一个将对所有其他表进行外部连接,而第二个则不会。我正在使用 nhibernate profiler 运行测试,但我正在尝试获得关于何时应该使用 Fetch.Select() 的经验法则或最佳实践(在网上找不到很多)。
我假设如果我想为所有条目访问 Field2 表中的另一个字段,我最好进行预先连接,并且如果我可能不会访问这些关联表中的数据来执行第二个操作
在这个决定中还有其他我遗漏的因素吗?