nhibernate 中的一对一关系可以“假”或“代理”延迟加载。我想知道是否有人知道一种方法来进行懒惰的一对一映射。
我通过使用映射到私有(private)字段的惰性集并让公共(public)属性返回该集的第一个结果,制定了一个技巧来实现相同的结果。它有效,但不是最干净的代码......
提前致谢!
最佳答案
除非关联是强制性的,否则不支持延迟加载一对一。见 here为推理。
归结为这样一个事实,即为了确定关系的另一方是否存在 (N)Hibernate 必须访问数据库。由于您已经对数据库进行了访问,因此您不妨加载完整的对象。
虽然在某些情况下访问数据库只是为了查看相关对象是否存在而不实际加载对象是有意义的(如果相关对象非常“重”),NHibernate 目前不支持它。
关于NHibernate:如何在一对一映射上启用延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/389026/