日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自定义ORM系列(三)工具雏形及基本用法

發布時間:2025/4/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自定义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系列(三)工具雏形及基本用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。