天天看點

Attribute(特性),怎麼用才更好? —— 字段編号被誤解了

  一提到字段編号,可能有些人的第一反應就是這樣的用法:

  Person1.2000020,或者Person1[2000020],或者ds[2000020]。

  這麼用确實是不好的,不易讀,很容易寫錯。但是我可沒說要這麼用呀。請看實體類的定義,可能是寫在後面了,有些人沒仔細看吧。

 

Attribute(特性),怎麼用才更好? —— 字段編号被誤解了
Attribute(特性),怎麼用才更好? —— 字段編号被誤解了

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表)裡的主鍵字段值,見下圖。

Attribute(特性),怎麼用才更好? —— 字段編号被誤解了

用關聯的方式,記錄表單裡需要哪些字段,下圖是一個視圖

Attribute(特性),怎麼用才更好? —— 字段編号被誤解了

上一篇的回複比較多,直接回複的話,恐怕好多人看不到。而我覺得好像好多人都有這種誤解,是以還是單開一篇來說明一下。

繼續閱讀