以 DB_Employees 為例,EmployeeID 屬性透過 BindFieldAttribute 標記為主鍵:
[BindField("EmployeeID", Key = true)]
public int EmployeeID {
get { return m_EmployeeID; }
set { m_EmployeeID = value; }
}
代碼生成器據此產生刪除命令填充邏輯:
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;
}
object 強轉為具體實體型別。DELETE FROM Table WHERE KeyField = ?。若實體擁有複合主鍵(多個 Key 屬性),生成器會自動在 WHERE 中以 AND 串接多個條件,並產生對應數量的參數綁定代碼,完全自動化處理。