程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#基礎系列:實現自己的ORM(ORM的基礎概念)(3)

C#基礎系列:實現自己的ORM(ORM的基礎概念)(3)

編輯:關於C語言

三、對象狀態:

對象一 般包括如下幾個狀態:

1、還沒有和任何數據庫數據關聯的對象,比如剛 new出來的對象,此時對象中沒有任何實際數據。

2、對象初始化並且設 置了屬性值,但是還沒有被保存,此時需要使用ORM的Insert功能。

3、 從數據庫中讀取出來的數據對象,並且已經修改,此時對象對應於數據庫中某條 記錄。

4、數據庫中記錄已經被刪除了的對象。

上面幾種狀態需 要在我們的ORM中能有所體現。比如對於第一種狀態,我們需要對其設置屬性值 ,然後轉換成第二種狀態。在ORM中執行Insert操作。對於第三中狀態,我們需 要執行Update操作,第四種狀態我們應該進行錯誤提示。

四、ORM中的事 物處理:

事物處理是每個底層框架都應該考慮的問題,即使不能提供自 有的事物處理模型,至少也要能夠提供能夠進行事物處理的接口等。

.Net中事物處理有兩種方式,一種是使用COM+,通過使用 TransactionScop來實現事物處理,這種方式性能有一定的下降,但是整個代碼 顯得非常優美。另外一種方式是通過SqlTransaction來實現事物處理。由於我曾 經被COM+弄的很慘,所以我這裡推薦使用SqlTransaction。

五、O/R Mapping的一般做法:

要實現對象和關系之間的映射,我們需要定義映射 規則,也就是類的屬性和數據庫表字段之間的一一對應規則。比如上面所說的 Child1.Property3對應數據庫表中的FIEld3字段。在.Net中我們可以通過自定義 Attribute來實現。好像也能夠通過配置文件來描述映射規則,但是我這裡僅僅 討論的是Attribute的形式。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved