SQL Artisan 是一套針對 .NET 環境設計的資料庫存取元件,強調物件導向操作與編譯期型別檢查,大幅提升開發效率與程式碼品質。本文概述現有版本成果與下一版核心功能規劃。
// 舊版:XML 描述檔
// 新版:屬性標記直接在類別定義
[Table("Employees")]
public class Employee {
[PrimaryKey, Identity]
[NumberField("EmployeeID")]
public int EmployeeID { get; set; }
[StringField("FirstName", 50)]
public string FirstName { get; set; }
}
相關對應成員移至 HFSoft.Data.Mapping 命名空間,架構更清晰。
舊版 Table 類別僅支援關聯查詢,新版支援完整 CRUD:
Employees.TBL.Insert(
Employees._FirstName.Set("Fan"),
Employees._LastName.Set("Henry"),
Employees._BirthDate.Set(DateTime.Parse("1979-1-1"))
);
Employees.TBL.Update(
Employees._FirstName == "Fan",
Employees._City.Set("GuangZhou"),
Employees._Address.Set("TianHe"),
Employees._Region.SetNull()
);
// 強型別查詢
var emps = Employees.TBL.Select(
Employees._City == "Taipei" && Employees._HireDate > DateTime.Now.AddYears(-1)
);
// 條件刪除
Employees.TBL.Delete(Employees._Status == "Inactive");
| 傳統 ADO.NET | SQL Artisan |
|---|---|
| 字串 SQL 散落各處 | 強型別 LINQ 風格查詢 |
| 執行期才發現拼字錯誤 | 編譯期即偵測欄位/資料表錯誤 |
| 手動對應 DataReader → 物件 | 自動物件具現化與變更追蹤 |
| 參數化查詢易遺漏 | 內建參數化,防 SQL Injection |
中大型專案、團隊開發、需長期維護、重視程式碼品質與重構安全性的系統。輕量級專案或極度效能敏感場景 (需手寫優化 SQL) 可評估 Dapper 或原生 ADO.NET。