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問題