NHibernate - ORM

在真正开始使用 NHibernate 之前,我们需要了解其构建的基础。NHibernate 是一种基于对象关系映射或 ORM 思想的持久性技术。

什么是 ORM?

对象关系映射 (ORM) 是一种编程技术,用于在面向对象编程语言中不兼容的类型系统之间转换数据。换句话说,它是将应用程序的业务对象映射到关系数据库表的概念,以便可以通过应用程序的对象模型轻松访问和更新数据。

  • 正如您所知,关系数据库提供了一种很好的数据存储方式,而面向对象编程是构建复杂应用程序的好方法。

  • NHibernate 和 ORM 通常与具有非平凡业务逻辑、域模型和某种数据库的应用程序最相关。

  • 使用 ORM,可以非常轻松地创建一个转换层,该转换层可以轻松地将对象转换为关系数据并再次转换回来。

  • 首字母缩略词 ORM 也可以表示对象角色建模,这个术语是在对象/关系映射变得重要之前发明的。

  • 它描述了一种用于数据库建模的信息分析方法。

为什么ORM?

ORM 是一个框架,它使您可以将面向对象语言中的对象世界映射到关系数据库中的关系表中的行。

为了理解这个概念,让我们看一下下面的图表。

Employee
  • 在上图中,您可以看到右侧有一个名为 Employee 的表,其中包含与单个员工相关的每条数据的列。

  • 我们有一个用于唯一标识每个员工的 Id 列。

  • 一列用于员工姓名,另一列用于员工入职日期,最后一列用于员工年龄。

  • 如果我们想编写一些代码来将新员工存储在表中,它并不是那么容易。

  • 在上图中,您还可以看到我们有一个员工对象,其中包含 Id、姓名、入职日期和年龄等字段。

  • 如果没有 ORM,我们必须将此对象转换为几个不同的 SQL 语句,这些语句会将员工数据插入员工表中。

  • 因此,编写代码来创建 SQL 以执行上述场景并不难,但有点乏味,而且很容易出错。

  • 使用像 NHibernate 这样的 ORM,我们可以声明某些类应该如何映射到关系表,并让 ORM 或 NHibernate 处理创建 SQL 以插入、更新、删除查询员工表中数据的繁琐工作。

  • 这使我们能够将代码专注于使用对象,并让这些对象自动转换为关系表。

  • 所以ORM 的真正作用是让我们免于手动将对象映射到表。