以 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。
例如
IList<User> SelectById(int id);