开局篇:ORM之选择——轻量级ORM:PetaPoco/NPoco

作为C/S架构下的老码农(开发工具:PowerBuilder,年龄:30+),学习.net是一件很痛苦的事情。至于为什么痛苦,我只想用两位大牛说的话来总结:

1.尼尔·波兹曼:媒介即隐喻。http://www.21ccom.net/articles/sxpl/sx/article_2011022030205.html

2.Joshua Bloch:选择编程语言就像选择酒吧。http://www.programmer.com.cn/4353/

虽然很痛苦,但是为了孩子的奶粉和老婆的笑脸,必须坚持下去。

好,下面进入正题。

对于我关注的MIS程序而言,第一要考虑的问题就是与数据库的交互。这方面在PB中根本就不是事,因为PB提供了并仅提供了一种与数据库直接交互的形式——内置了对SQL的支持,简单高效。无论Selet、Update、Insert、Delete,还是对存储过程、事务的支持,都无需也无法选择。

而在.net下,或许为了语言的纯粹性,对SQL的支持变成了变种的LinQ,而与数据库的交互,变得五花八门。大体三种选择:

1.重量级ORM——EF、NHibernate等。

2.轻量级ORM——PetaPoco/NPoco、Dapper等。

3.无ORM——各种Helper、微软企业库等。

其中的各种优缺点对比啥的我就不奢谈了,只说下我为什么选择PetaPoco/NPoco:

1.完整的Poco(简单CLR对象)级别的ORM。

2.可直接写SQL。

3.提供CRUD、分页等帮助方法。

4.提供SQL Builder方法。

5.内置T4模板。

……

选择PetaPoco之后,我又进一步选择了PetaPoco的一个发行版NPoco,原因:

1.支持单表多主键。——貌似PetaPoco不支持。

2.支持LinQ。——虽然我目前用不上,但是据说“实现IRepository”需要。虽然我目前还不明白IRepository这种编程方法。

既选之,则安之。在可预见的将来,在ORM方面,本博将以NPoco为主。

努力吧!骚年!!!

原文地址:https://www.cnblogs.com/dusdong/p/ORM_PetaPoco_NPoco.html