mybatis.net

EF 太重,MyBatis 太轻,ORM 框架到底怎么选 ?

早过忘川 提交于 2020-04-12 12:42:16
以 EF 为代表的基于 Linq 的 ORM 框架总是 很重 。 他们的功能早已超出了一个 ORM 的范畴, ORM 是 Object Relational Mapping ,从名字上看,其初衷是将 数据库中的字段 与 实体中的属性 进行关联映射, 但是 重型 ORM 框架 做了很多 额外 的事情 : 数据库连接 数据库事务包装 实体缓存 实体关联管理 数据库表同步 这些功能很好, 强大的功能往往是死板的, 我们无法编写那些灵活的 Sql 去实现某些简便的操作。 以 MyBatis.NET、Dapper 为代表的, 则是基于开发者自行编写 Sql 的 ORM 框架又 太轻。 因为是自行编写 Sql , 所以他们非常灵活, 但是用起来很 痛苦 。 哪怕是一个简单的 Insert ,Update 也得写 Sql, 而且还无法摆脱 数据库 兼容的问题。 你所编写的那些 Sql 在大部分情况下,只能用于一种 数据库 今天要向大家介绍一个 轻量级、不用写 Sql、可以兼容多数据库 的 ORM 框架 Reface.NPI 什么是 NPI NPI 全名 .Net Persistent Interface 。 这是一个利用 interface 实现的轻量级 ORM 框架, 它与市面上大多数的 ORM 框架不同,它不基于 Linq 进行数据库操作,而是基于 Method Name 。 例如

EF 太重,MyBatis 太轻,ORM 框架到底怎么选 ?

不羁岁月 提交于 2020-04-12 12:24:20
以 EF 为代表的基于 Linq 的 ORM 框架总是 很重 。 他们的功能早已超出了一个 ORM 的范畴, ORM 是 Object Relational Mapping ,从名字上看,其初衷是将 数据库中的字段 与 实体中的属性 进行关联映射, 但是 重型 ORM 框架 做了很多 额外 的事情 : 数据库连接 数据库事务包装 实体缓存 实体关联管理 数据库表同步 这些功能很好, 强大的功能往往是死板的, 我们无法编写那些灵活的 Sql 去实现某些简便的操作。 以 MyBatis.NET、Dapper 为代表的, 则是基于开发者自行编写 Sql 的 ORM 框架又 太轻。 因为是自行编写 Sql , 所以他们非常灵活, 但是用起来很 痛苦 。 哪怕是一个简单的 Insert ,Update 也得写 Sql, 而且还无法摆脱 数据库 兼容的问题。 你所编写的那些 Sql 在大部分情况下,只能用于一种 数据库 今天要向大家介绍一个 轻量级、不用写 Sql、可以兼容多数据库 的 ORM 框架 Reface.NPI 什么是 NPI NPI 全名 .Net Persistent Interface 。 这是一个利用 interface 实现的轻量级 ORM 框架, 它与市面上大多数的 ORM 框架不同,它不基于 Linq 进行数据库操作,而是基于 Method Name 。 例如