MicroOrm.Net和现有ORM产品的对比

MicroOrm.Net主页:

http://code.google.com/p/micro-orm-net/

MicroOrm.Net系列随便目录总览:

http://www.cnblogs.com/mapserver/archive/2012/04/07/2436129.html

 

我写了一个系列的文章来介绍MicroOrm.Net,期间不断有同学来打击我,说没有特色,说是重复造轮子,我在写系列文章的开篇,就说了我不打算去和任何产品进行比较,但是很多同学都是眼睛一瞄就开始轻易的下定论,所以我觉得还是来详细说明MicroOrm.Net产生的背景以及和现有的ORM进行一个简单比较。

 

MicroOrm.Net是我现在产品中用到的一个ORM产品,产品立项初期在ORM的选择上,也是费了很多时间,但是最后决定来自己写。在MicroOrm.Net 1.0 beta出来后,使用起来感觉还不错,于是有了开源的想法,也算为同学们做点贡献。

 

MicroOrm.Net的特色:

1、可以不定义强类型Model;当然也支持强类型的Model:

var od = db.OrderDetail.Query()
        .Where(db.OrderDetail.OrderId == "001")
        .First();
string orderId = od.OrderId;
int qty = od.Qty;

 

2、不用去定义Model和Model之间的Mapping

3、在多个表关联查询,每个表中取部分列来做返回结果时,不用像传统的ORM那样,需要一个Model去关联另一个Model,关联了一大堆的Model;而在MicroOrm.Net里,一切都可以用Select子句来搞定

4、抛弃上下文

5、大量使用动态对象,一切都是那么随心所欲

6、MicroOrm.Net源代码很小(代码量应该在3K~4K行左右,我没有去统计),自己修改和定制很简单

 

VS EF & NHibernate & iBatis

1、MicroOrm.Net和EF、NHibernate不在一个数量级上

2、EF、NHibernate都必须定义Model,都必须去Mapping(不管是xml方式,还是代码方式),这也是MicroOrm.Net产生的一个最重要的原因

3、庞大

4、性能问题

5、NHibernate、iBatis配置复杂

 

VS Dapper.Net

Dapper.Net性能很好,但是需要自己来写Sql语句,对支持多数据库很累

 

VS Simple.Data

Simple.Data是一个很不错的项目,我在写MicroOrm.Net打算用它,我详细的阅读了他的源代码,也做了大量的测试,但是最后放弃了

1、代码复杂

2、方法太灵活,比如查询,有很多中查询方式,在MicroOrm.Net里,所有的查询都统一的Query方法上了

3、Bug问题

posted @ 2012-04-12 15:14  mapserver  阅读(1679)  评论(11编辑  收藏  举报