zoukankan      html  css  js  c++  java
  • 开局篇: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为主。

    努力吧!骚年!!!

  • 相关阅读:
    拆分字符串为单条记录
    Howto: Change Windows Hostname and Keep Oracle 10g Running
    关于Oracle的MTS
    linux/centos Header V3 DSA signature: NOKEY, key ID 错误解决方法
    cacti0.8.7d安装
    Identifying Host Names and IP Addresses
    修改Oracle字符集(character set)
    企业管理器(OEM)介绍: Grid Control 和 Database Control
    搞OMS真折腾
    ORA12560: TNS: 协议适配器错误
  • 原文地址:https://www.cnblogs.com/dusdong/p/ORM_PetaPoco_NPoco.html
Copyright © 2011-2022 走看看