自定义ORM系列(三)工具雏形及基本用法
?
引言
本篇給大家介紹我這個工具的雛形結構,以及基本的用法,還請大家多提意見。
初看起來,這個有點像NHibernate。說到這里,肯定有人要拍磚了。其實,我也知道。我這個不入流的東西,和NHibernate相比差遠了。我開發這個東西的原因主要有兩個:
1)NHibernate太復雜了,學習了兩個星期,覺得它太強大了。但是強大是用復雜做代價的,里面要學習的東西太多了,不敢輕易引入項目,因為很多原理不清楚,報錯也不明確,所以不敢輕易在項目中使用。
2)自己想練練手,順便通過這個過程,也好深入繼續深入學習一下NHibernate。因為在寫這個工具的過程中,我會看NHibernate的源碼,然后看他的源碼調用關系,調用邏輯,在自己的工具中模仿它,通過模仿來學習提高。
?
正文
開始正文吧。寫上一幅我目前的工具類圖。
?
?
?
基本的調用關系,有點像NHibernate。
給大家先貼一段使用的示例代碼。
?
Custom ORM Code Demo ?//初始化Session????????????ISession?session?=?new?Configuration().Configure().BuildSessionFactory().OpenSession();
????????????Order?order?=?new?Order();
????????????Guid?id?=?order.OrderID?=?Guid.NewGuid();
????????????order.ProductName?=?"seed1221002"?+?DateTime.Now.ToLongTimeString();
????????????//添加
????????????session.Save(order);
????????????session.SubmitChange();
????????????//獲取
????????????order?=?new?Order();
????????????order?=?session.Get(new?Guid("6744C2AB-C780-4DAD-9089-DF166747640F"));
????????????//事務操作
????????????using?(ITransaction?tran?=?session.BeginTransaction())
????????????{
????????????????try
????????????????{
????????????????????session.Save(order);
????????????????????order.ProductName?=?"seed1221003"?+?DateTime.Now.ToLongTimeString();
????????????????????session.Update(order);
????????????????????tran.Commit();
????????????????}
????????????????catch?(Exception?ex)
????????????????{
????????????????????tran.Rollback();
????????????????}
????????????}
?
內部具體的數據庫操作,目前使用的是Enterprise Library V5.0,感覺使用企業庫比較方便。后面的話,如果發現不合適,可以直接用原生的ADO.NET代替就可以了。
代碼:/Files/virusswb/BTFramework.rar
結合我的 自定義ORM系列(一)利用attribute實現簡單的reader=>entity和reader=>List<entity>映射?和 自定義ORM系列(二)發現屬性是否修改,有選擇的持久化?以及 胡亂說一下我對于 BO VO PO DTO 的理解?中的思想,就可以實現一個完整的基于attribute的ORM小工具,以及有選擇的持久化。還可能會極大的減輕系統的維護量。在后面我會將完整版的工具上傳,我還會繼續完善其他的功能,以及進行一些測試。
?
后話
如果有哪位有心人,愿意看在下的代碼,不嫌棄在下代碼亂的話,可以幫我理理思路。因為,我覺得目前的代碼結構不是很好,我不知道我這個在實際中使用的話,會遇到什么問題,在哪些地方還需要提高,還需要注意什么,或者說代碼的結構那里需要調整?希望有緣人可以指點一二,當然了,胡亂說幾句也可以,先謝過了。
當然了,這個ORM工具我也會繼續的完善,希望在下一個項目中可以實踐一下。
項目的SVN地址:svn://www.oksvn.com/BTFramework
大家可以隨意獲取,隨意使用,隨意批評。
?
轉載于:https://www.cnblogs.com/virusswb/archive/2010/12/21/1913057.html
總結
以上是生活随笔為你收集整理的自定义ORM系列(三)工具雏形及基本用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux驱动开发环境配置(内核源码树构
- 下一篇: 5大过程组任务概述