這個函數的 參數是SQL查詢語句和實體對象類型。在這個函數中,首先是調用CheckConnection函數來檢 查數據庫的連接狀態,然後使用GetHelper函數獲得對應的數據庫操作幫助類,然後執行SQL 查詢,獲得一個數據庫讀取器,然後調用數據操作幫助類的ReadRecords獲得一個列表,該列 表就包含了查詢數據所得的實體對象。這個過程沒有使用反射,執行速度非常快,使用這個 快速ORM框架,執行速度跟我們傳統的手工編寫代碼創建實體對象的速度是一樣的,但大大降 低了我們的開發工作量。
在快速ORM框架中,根據ReadObjects函數派生了ReadObject ,ReadAllObject等系列讀取數據的函數,其原理都是一樣的。
刪除數據 DeleteObject
在快速ORM框架中定義了一個DeleteObject函數用於刪除數據,其代碼 為
public int DeleteObject( object RecordObject )
{
this.CheckConnection();
if( RecordObject == null )
{
throw new ArgumentNullException ("RecordObject");
}
RecordORMHelper helper = this.GetHelper( RecordObject.GetType() );
using( System.Data.IDbCommand cmd = this.Connection.CreateCommand())
{
if( helper.FillDeleteCommand( cmd , RecordObject ) > 0 )
{
return cmd.ExecuteNonQuery();
}
}
return 0 ;
}
這個函數的參數就是要刪除的對象,在函數中,首先調 用GetHelper函數獲得數據操作幫助器,然後創建一個數據庫命令對象,調用幫助類的 FillDeleteCommand函數初始化數據庫命令對象,然後執行該命令對象即可刪除數據,過程簡 單明了。ORM框架還定義了DeleteObjects函數用於刪除多個實體對象,其原理和 DeleteObject函數一樣。
更新數據 UpdateObject
快速ORM框架定義了 UpdateObject函數用於更新數據,其代碼為
public int UpdateObject( object RecordObject )
{
this.CheckConnection();
if( RecordObject == null )
{
throw new ArgumentNullException("RecordObject");
}
RecordORMHelper helper = this.GetHelper( RecordObject.GetType());
using( System.Data.IDbCommand cmd = this.Connection.CreateCommand())
{
int fIElds = helper.FillUpdateCommand( cmd , RecordObject );
if( fIElds > 0 )
{
return cmd.ExecuteNonQuery ();
}
}
return 0 ;
}
過程很簡單,首先使用GetHelepr函數獲得數據庫幫助器,然後調用它的 FillUpdateCommand函數來設置數據庫命令對象,然後執行數據庫命令對象即可完成刪除數據 的操作。ORM框架還定義了 UpdateObjects函數用於更新多條數據庫記錄,其原理和 UpdateObject函數是一樣的。