一提到字段編号,可能有些人的第一反應就是這樣的用法:
Person1.2000020,或者Person1[2000020],或者ds[2000020]。
這麼用确實是不好的,不易讀,很容易寫錯。但是我可沒說要這麼用呀。請看實體類的定義,可能是寫在後面了,有些人沒仔細看吧。

public class Person
{
private string _Name;
private int _Age;
private string _Sex;
[ColumnID(2000020)]
public string Name
{
get { return this._Name; }
set { this._Name = value; }
}
[ColumnID(2000040)]
public int Age
get { return this._Age; }
set { this._Age = value; }
[ColumnID(2000030)]
public string Sex
get { return this._Sex; }
set { this._Sex = value; }
}
那麼用的時候是什麼樣的呢?和普通的實體類沒什麼差別,就是 Person1.Name、Person1.Age。沒有magic number什麼事。
那麼magic number 在什麼時候用呢?在儲存資料的時候才需要用的。
我們寫一個通用的函數實作儲存資料的功能,在這裡通過反射獲得字段編号,然後根據編号到資料庫裡提取需要的資訊。
這個過程并不需要程式員操心,而且也沒有具體的某個字段編号。
是以我覺得完全不存在magic number 的缺點。這裡的字段編号完全是給程式看的,而不是給程式員看的。
字段編号 != 字段名稱
字段編号其實是字段描述表(Manage_Columns表)裡的主鍵字段值,見下圖。
用關聯的方式,記錄表單裡需要哪些字段,下圖是一個視圖
上一篇的回複比較多,直接回複的話,恐怕好多人看不到。而我覺得好像好多人都有這種誤解,是以還是單開一篇來說明一下。