


[Serializable]
public class Products : Entity {
public Products() : base("Products") {}
#region Model
public int ProductID { get; set; }
public string ProductName { get; set; }
public int? SupplierID { get; set; }
// ... 其他屬性,Setter 內呼叫 OnPropertyValueChange 追蹤異動
#endregion
#region Method
public override Field GetIdentityField() { return _.ProductID; }
public override Field[] GetPrimaryKeyFields() { return new[] { _.ProductID }; }
public override Field[] GetFields() { return new[] { _.ProductID, _.ProductName, ... }; }
public override object[] GetValues() { return new object[] { _ProductID, _ProductName, ... }; }
public override void SetPropertyValues(IDataReader reader) { /* 逐欄位 ConvertValue */ }
public override void SetPropertyValues(DataRow row) { /* 同上 */ }
#endregion
#region _Field
public class _ {
public static readonly Field All = new Field("*", "Products");
public static readonly Field ProductID = new Field("ProductID", "Products", "ProductID");
public static readonly Field ProductName = new Field("ProductName", "Products", "ProductName");
// ... 所有欄位對應靜態唯讀 Field
}
#endregion
}
Products._.ProductName),智慧提示友善。DBNull、型別轉換、nullable。product_id → ProductId)。實體產生工具讓「資料庫優先」開發流程極度順暢,秒級產出完整可用的強型別實體,是 Hxj.Data 開發體驗的關鍵拼圖。