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

C# 實作自製 ORM(五):MiniORM 架構設計與實體類別建模

     編輯:關於C語言

MiniORM 核心架構三大組件

採用 ONE_INHERIT_TREE_ONE_CLASS(單表繼承)策略,簡單易用,雖有資料冗餘但開發效率高。僅支援單一主鍵、單一外鍵場景。三大核心類別職責分工:

  • OrmWriter:負責實體物件 新增 與 修改 持久化
  • OrmRemover:負責依實體物件 刪除 對應記錄
  • OrmReader:負責依實體物件 讀取 指定記錄

MiniORM 三大核心類別架構圖

實體類別設計考量:繼承與組合並重

真實業務模型同時存在繼承與組合關係。Person 範例:

  • 主鍵 ID 為 int Identity(1,1) 自動遞增
  • 組合關係:包含 Head、Hand(左/右手)子物件
  • 子物件各自擁有主鍵與外鍵 PersonID 關聯回父物件

Person 實體初版定義(僅基礎欄位 Attribute)

[DataObjectAttribute("Person")]
public class Person {
    private int _id; private string _name; private int _age; private string _sex;
    private Head _head; private Hand _leftHand; private Hand _rightHand;

    public int ID { get => _id; set => _id = value; }
    public Head Head { get => _head; set => _head = value; }
    public Hand LeftHand { get => _leftHand; set => _leftHand = value; }
    public Hand RightHand { get => _rightHand; set => _rightHand = value; }

    [DataFieldAttribute("name", "NvarChar")]
    public string Name { get => _name; set => _name = value; }
    [DataFieldAttribute("age", "int")]
    public int Age { get => _age; set => _age = value; }
    [DataFieldAttribute("sex", "NvarChar")]
    public string Sex { get => _sex; set => _sex = value; }
}

後續章節將逐步加入主鍵標記、組合關係 Attribute、唯一性約束等完整定義。

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