close
Entity Framework提供繼承的機制,讓開發人員可以用抽象的方式去處理資料,而不會被資料表的設計給限制住。
假設現在有一個資料表叫Person,裡面記錄姓名跟職業,由於職業很多種,所以用數字來表示不同的職業。
如果不同的職業有不同的程式邏輯,用一般的作法,可能會不好管理,但透過繼承以及虛擬函式,可以減少許多不必要的麻煩,下面就來示範Entity Framework上的繼承。
新建一個Web專案,並新增ADO.NET實體資料模型。
資料表選擇Person。
之後刪除Person上的occupation屬性。
之後加入新的類別Teacher,基底類別選擇Person。
然後在條件式上設定當occupation為1時,表示為Teacher類別。
記得在Person上也要設定好條件,不然編譯不會過。
之後再依序增加Student以及Police類別,並照剛剛的方式設定條件。
這邊我們對Person新增一個虛擬函式:WhoAmI。
其它繼承Person的類別則照下面的程式碼覆寫WhoAmI。
當呼叫WhoAmI函式時,就會依照不同的實體找到真正對應的函式。
在Page_Load,把所有的資料都抓出來,並呼叫WhoAmI函式。
執行結果。
現在,多增加一個新增資料的功能,在Default.aspx上,新增二個TextBox、一個DropDownList以及Button,命名如下
- FirstNameTextBox、LastNameTextBox
- OccupationDropDownList
- SubmitBtn
在OccupationDropDownList,新增下列元素。
新增按鈕的程式碼。
修改Page_Load的程式碼。
重新執行一次,並新增一筆資料
全站熱搜