程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#發現之旅第十二講 基於反射和動態編譯的快速ORM框架(上)(5)

C#發現之旅第十二講 基於反射和動態編譯的快速ORM框架(上)(5)

編輯:關於C語言

其他的 ConvertTo 函數

     #endregion

     /// <summary>
     /// 將日期數據轉換為數據庫中的格式,本函數會在動態生成的派生類中使 用.
     /// </summary>
     /// <param  name="Value">日期數據</param>
     /// <param  name="Format">保存格式化字符串</param>
     ///  <returns>轉換後的數據</returns>
     protected object  DateTimeToDBValue( DateTime Value , string Format )
     {
         if( Format != null || Format.Length > 0 )
          {
              return Value.ToString( Format  );
         }
         else
          {
              return Value ;
         }
     }

}//public abstract class  RecordORMHelper

在這個類型中,TableName屬性返回該實體對象類型綁定的 數據庫名稱,因此該屬性值由BindTableAttribute特性指定,RecordFieldNames屬性返回一 個字符串數組,該數組列出了所有的綁定的字段的名稱,也就是實體類型包含的所有的 BindFIEldAttribute指定的字段名稱組成的數組。

實體類型注冊列表

在快速 ORM框架主模塊MyFastORMFramework中定義了一個myRecordHelpers的變量

private static System.Collections.Hashtable myRecordHelpers =  new System.Collections.Hashtable();

這個myRecordHelpers就是實體類型 注冊列表。該列表中鍵值就是實體對象類型,而它的數據值就是一個個動態生成的從 RecordORMHelper派生的對象實例。我們定義了一個函數向該列表注冊實體對象類型

public void RegisterType( Type t )
{
     if(  myRecordHelpers.ContainsKey( t ) == false )
     {
          this.GetBindPropertIEs( t );
         myRecordHelpers[ t  ] = null ;
     }
}

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