ORM框架設計
我們首先來設計一個ORM框架。說到框架大家一定聯想到.NET框架,J2EE框架。這些框架都是大公司勞苦數年才能完成,結構復雜功能強大。其實我們都可以根據各自需要自己開發一些通用的支持性質的軟件,並美其名曰框架。現在我們就來設計一個輕量級的ORM框架,並應用我們今天要學習的反射和特性的.Net編程技術。
既然是輕量級的,我們就不考慮所有的情況,只考慮經常遇到的簡單情況,復雜情況不予考慮。很多時候我們的編程對象和數據庫表之間是存在簡單的影射關系的,比如一個對象類型對應一個數據表,對象的一個屬性對應數據表中的一個字段。此時我們可以定義兩種特性,一個數據數據庫表綁定特性,名為BindTableAttribute,用於將一個對象類型綁定到一個指定表名稱的數據表上;還有一個數據庫字段綁定特性,名為BindFIEldAttribute,用於將一個對象屬性綁定到一個指定名稱的字段上面。
下圖就是一個映射關系的例子,數據庫中有個名為Employees的數據表,而開發者定義了DB_Employees類型。通過使用BindTableAttribute特性,將DB_Employess類型映射到數據表Employees,而是用BindFIEldAttribute特性將DB_Employees的EmployeeID屬性映射到數據庫字段EmployeeID上面。類似的DB_Employees中的很多屬性都映射到數據表Employees中的某個字段上,當然不是所有的對象類型的屬性映射到數據庫字段。通過在程序代碼中,我們可以使用硬編碼的方式將對象類型及其屬性映射到數據庫中的表和字段上面。