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

C# 實作自製 ORM(七):MiniORM 實體類別完整定義(含 Person、Hand、Head)

     編輯:關於C語言

測試用實體類別完整程式碼

包含 Person、Hand、Head 三個類別,完整標註所有 ORM Attribute:

Person 類別

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

    [DataFieldAttribute("ID", true)] // Identity
    public int ID { get => _id; set => _id = value; }

    [SubDataObjectAttribute(SubDataObjectFieldType.Object, "MiniORM", "MiniORM", "Head")]
    public Head Head { get => _head; set => _head = value; }

    [SubDataObjectAttribute(SubDataObjectFieldType.Object, "MiniORM", "MiniORM", "Hand")]
    public Hand LeftHand { get => _leftHand; set => _leftHand = value; }

    [SubDataObjectAttribute(SubDataObjectFieldType.Object, "MiniORM", "MiniORM", "Hand")]
    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; }

    // 以下兩屬性為介面相容性保留,實作拋出 NotImplementedException
    public Hand Hand { get => throw new NotImplementedException(); set { } }
    public Head Head1 { get => throw new NotImplementedException(); set { } }
}

Hand 類別

[DataObjectAttribute("Hand", "ID", "PersonID")]
public class Hand {
    private int _id; private int _personId; private string _name;
    [DataFieldAttribute("ID", true)] public int ID { get => _id; set => _id = value; }
    [DataFieldAttribute("PersonID")] public int PersonID { get => _personId; set => _personId = value; }
    [DataFieldAttribute("name", "NvarChar")] public string Name { get => _name; set => _name = value; }
}

Head 類別

[DataObjectAttribute("Head", "ID", "PersonID")]
public class Head {
    private int _id; private int _personId; private string _name;
    [DataFieldAttribute("ID", true)] public int ID { get => _id; set => _id = value; }
    [DataFieldAttribute("PersonID")] public int PersonID { get => _personId; set => _personId = value; }
    [DataFieldAttribute("name", "NvarChar")] public string Name { get => _name; set => _name = value; }
}

關鍵點:

  • DataObjectAttribute 參數:資料表名、主鍵欄位、外鍵欄位(子物件用)
  • SubDataObjectAttribute 參數:關聯型別、組件名、命名空間、類別名
  • 子物件 Hand、Head 均含 PersonID 外鍵欄位,對應父表主鍵
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved