首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

CodeSmith 模板優化:移除 Oracle 欄位名稱底線轉 PascalCase

     編輯:Oracle 資料庫基礎

問題背景

CodeSmith 內建模板多針對 SQL Server 設計。Oracle 命名慣例常使用底線分隔(如 CUSTOMER_NAME),而 .NET 命名規範推薦 PascalCase(CustomerName)。直接套用模板產出的實體類別屬性將保留底線,不符合團隊編碼標準。

解決方案:模板輔助函數

在 CodeSmith 模板(.cst)中加入轉換函數,於產生類別名稱、屬性名稱時呼叫。

轉換邏輯

  1. 以底線 _ 分割字串。
  2. 每段首字母大寫,其餘小寫。
  3. 拼接回單一字串。

模板程式碼片段

<script runat="template">
public string GetFixName(string strVal)
{
    string strReturnVal = "";
    string[] strVals = strVal.Split('_');
    foreach (string str in strVals)
    {
        if (str.Length > 0)
            strReturnVal += str.Substring(0, 1).ToUpper() + str.Substring(1).ToLower();
    }
    return strReturnVal;
}
</script>

使用時機

  • 資料表名稱 → 實體類別名稱
  • 欄位名稱 → 實體屬性名稱
  • 預存程序參數 → 方法參數名稱

呼叫範例

<%= GetFixName(Table.Name) %>  // 產生類別名
<%= GetFixName(Column.Name) %> // 產生屬性名

效果展示

Oracle 原始名稱轉換後
CUSTOMER_INFOCustomerInfo
ORDER_IDOrderId
CREATE_DATE_TIMECreateDateTime
SYS_USER_ROLE_MAPSysUserRoleMap

延伸建議

  • 若專案有特定縮寫(如 ID、URL)需保持大寫,可擴充函數加入字典排除表。
  • 搭配 CodeSmith Property 設定,讓使用者可選擇是否啟用轉換。
  • 同步處理資料庫關鍵字衝突(如 ORDER → OrderEntity)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved