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

ORM 框架實體類別定義與 WinForm 測試程式:查詢資料並繫結列表方塊 (第 11 講下第 5 部分)

     編輯:關於C語言

DB_Employees 實體類別 (核心片段)

[Serializable]
[BindTable("Employees")]
public class DB_Employees
{
    public string FullName => LastName + FirstName; // 唯讀計算屬性

    #region 資料庫欄位屬性
    private int _employeeID;
    [BindField("EmployeeID", Key = true)]
    public int EmployeeID { get => _employeeID; set => _employeeID = value; }

    private string _lastName;
    [BindField("LastName")]
    public string LastName { get => _lastName; set => _lastName = value; }

    private string _firstName;
    [BindField("FirstName")]
    public string FirstName { get => _firstName; set => _firstName = value; }
    // 其他欄位略...
    #endregion
}

WinForm 測試介面

ORM 測試程式 UI

查詢並繫結列表

private void cmdRefresh_Click(object sender, EventArgs e)
{
    using (MyORMFramework orm = CreateFramework())
        RefreshList(orm);
}

private void RefreshList(MyORMFramework orm)
{
    object[] objs = orm.ReadAllObjects(typeof(DB_Employees));
    ArrayList list = new ArrayList(); list.AddRange(objs);
    lstName.DataSource = list; lstName.DisplayMember = "FullName";
}

private MyORMFramework CreateFramework()
{
    var conn = new OleDbConnection(
        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + 
        Path.Combine(Application.StartupPath, "demomdb.mdb"));
    conn.Open();
    return new MyORMFramework(conn);
}

設計重點

  • 實體類別僅含屬性與特性,邏輯極簡,極適合代碼生成器 (如 T4、CodeSmith) 批量產出。
  • EmployeeID 標記 Key=true,框架自動用於 UPDATE/DELETE 的 WHERE 條件。
  • FullName 為計算屬性,無 BindField 不會持久化。
  • 測試程式展示框架從建立連線、查詢、繫結 UI 的完整最短路徑。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved