NHibernate一对一关联的延迟加载是如何实现的?

2026-05-25 09:503阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2139个文字,预计阅读时间需要9分钟。

NHibernate一对一关联的延迟加载是如何实现的?

由于项目需求,我最近对比了.NET平台下各种ORM框架(如LINQ to SQL、Entity Framework V2/V4以及Hibernate)的功能。Hibernate可以称得上是这些框架中历史最悠久、功能最强,同时也是使用最复杂的。

由于项目需要,我最近对.NET平台下各ORM框架(LINQ to SQL、Entity Framework V2 & V4、以及NHibernate)进行了功能对比,NHiberante可以说是各框架之中历史最为悠久,功能最强,也是使用最为复杂的一个。在使用NHibernate的过程中也遇到了许多麻烦,不过也得到了不少体会。例如NH的不足之处,我理想中的ORM框架是怎么样的,等等这些,以后有机会也可以慢慢和各位进行讨论。

不过这篇文章谈论的其实只是一个小技巧,一个workaround,而且甚至于这个是由于我对NHibernate不够了解而造成的。因此,如果您有更好的做法也请不吝指出。这个问题也就是“如何实现NHibernate中一对一映射的延迟加载”。

问题描述

之前对于问题的描述,其实还有很多额外的要求没有讲清楚,而需要“workaround”的现状,也是这些要求共同形成的。经过尝试,如果放弃其中任何一个(如把主表ID的生成策略从identity改为native),则可能就会有更直接的做法了。这些条件是:

  • 一对一映射
  • 主键关联
  • 主表的ID为自增字段
  • 所有字段NOT NULL。
  • 主表和子表设置级联删除

现在的问题,就是在这些条件下,如何实现“获取主表对象时,并不加载其对应的子表数据”,也就是所谓的“延迟加载”。

阅读全文

本文共计2139个文字,预计阅读时间需要9分钟。

NHibernate一对一关联的延迟加载是如何实现的?

由于项目需求,我最近对比了.NET平台下各种ORM框架(如LINQ to SQL、Entity Framework V2/V4以及Hibernate)的功能。Hibernate可以称得上是这些框架中历史最悠久、功能最强,同时也是使用最复杂的。

由于项目需要,我最近对.NET平台下各ORM框架(LINQ to SQL、Entity Framework V2 & V4、以及NHibernate)进行了功能对比,NHiberante可以说是各框架之中历史最为悠久,功能最强,也是使用最为复杂的一个。在使用NHibernate的过程中也遇到了许多麻烦,不过也得到了不少体会。例如NH的不足之处,我理想中的ORM框架是怎么样的,等等这些,以后有机会也可以慢慢和各位进行讨论。

不过这篇文章谈论的其实只是一个小技巧,一个workaround,而且甚至于这个是由于我对NHibernate不够了解而造成的。因此,如果您有更好的做法也请不吝指出。这个问题也就是“如何实现NHibernate中一对一映射的延迟加载”。

问题描述

之前对于问题的描述,其实还有很多额外的要求没有讲清楚,而需要“workaround”的现状,也是这些要求共同形成的。经过尝试,如果放弃其中任何一个(如把主表ID的生成策略从identity改为native),则可能就会有更直接的做法了。这些条件是:

  • 一对一映射
  • 主键关联
  • 主表的ID为自增字段
  • 所有字段NOT NULL。
  • 主表和子表设置级联删除

现在的问题,就是在这些条件下,如何实现“获取主表对象时,并不加载其对应的子表数据”,也就是所谓的“延迟加载”。

阅读全文