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

C# 發現之旅第十二講:快速 ORM 刪除功能與代碼生成實例

     編輯:關於C語言

實體屬性定義與 Key 標記

以 DB_Employees 為例,EmployeeID 屬性透過 BindFieldAttribute 標記為主鍵:

[BindField("EmployeeID", Key = true)]
public int EmployeeID {
    get { return m_EmployeeID; }
    set { m_EmployeeID = value; }
}

生成的 FillDeleteCommand 代碼

代碼生成器據此產生刪除命令填充邏輯:

public override int FillDeleteCommand(IDbCommand cmd, object objRecord) {
    if (cmd == null) throw new ArgumentNullException("cmd");
    if (objRecord == null) throw new ArgumentNullException("objRecord");
    DB_Employees myRecord = objRecord as DB_Employees;
    if (myRecord == null) throw new ArgumentException("must type 'DB_Employees'");
    cmd.Parameters.Clear();
    cmd.CommandText = @"DELETE FROM Employees WHERE EmployeeID = ?";
    IDbDataParameter parameter = null;

    parameter = cmd.CreateParameter();
    parameter.Value = myRecord.EmployeeID;
    cmd.Parameters.Add(parameter);

    return 1;
}

核心流程解析

  1. 參數驗證:確保命令與實體物件有效。
  2. 型別轉換:將 object 強轉為具體實體型別。
  3. SQL 組裝:根據關鍵屬性生成 DELETE FROM Table WHERE KeyField = ?。
  4. 參數綁定:依序建立參數並指派實體屬性值。
  5. 回傳參數數量:供框架驗證綁定完整性。

擴充性說明

若實體擁有複合主鍵(多個 Key 屬性),生成器會自動在 WHERE 中以 AND 串接多個條件,並產生對應數量的參數綁定代碼,完全自動化處理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved