三、對象狀態:
對象一 般包括如下幾個狀態:
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的形式。