2012-02-22 36 views
0

我正在嘗試設置一些數據庫表併爲教師,學生,課程,學期的主題創建一些模型類。這是針對MVC3 Web App的。如果我有一個userprofile實體和模型類。如果我在userprofile模型類中創建分類枚舉,並且該枚舉將是Teacher或Student,它會起作用嗎? Idk如果這可以工作。我真的不知道我該怎麼做這個B/C我將需要學生參加的課程,對於老師,我需要他/她正在教授和教授的課程。任何意見將不勝感激。正確使用枚舉

因此,舉例來說,也許這樣的事情在USERPROFILE類:

class UserProfile { 

     public Guid UserID { get; set; } 
     public string fname { get; set; } 
     public string lname { get; set; } 
     public Classification classification { get; set; } 

    } 

    public enum Classification { 

     Student, Teacher 
    } 

回答

1

您的設計看起來不錯。

你也可以使用一個布爾變量,例如UserIsPatientUserIsTeacher,但是通過使用您創建的東西,可如果你的要求以後改變很容易地擴展枚舉 - 例如,如果你想增加學生的老師,實習生,或其他。

+0

感謝您的回覆,我想我很困惑的是關係如何運作。我如何將我的老師和學生實體與用戶配置實體聯繫起來。現在我的小組成員有學生和教師實體繼承用戶配置文件,但是當我們這樣做時,我們會遇到各種各樣的錯誤。這個關係是指向分類還是僅僅是用戶標識? – TMan 2012-02-22 01:10:46

+0

我不知道我理解你的問題。 「學生」和「教師」是枚舉的成員,並且您的UserProfile類具有一個字段,用於指定UserProfile對象是指教師還是學生。與任何引用枚舉的字段一樣,UserProfile.classification實際上存儲了一個整數值 - 在本例中,學生爲0,教師爲1。 UserProfile.classification是分類的ForeignKey,而UserProfile.UserID是用戶配置文件表中的主鍵。 – 2012-02-22 01:24:57

+0

這很酷,因爲我所做的是我去了dbml,當進入分類屬性的屬性,我改變了類型爲全球:: SolutionName.Models.Enum.Classification ...現在我不必存儲整數,dbml將它作爲分類枚舉並嘗試匹配教師或學生 – TMan 2012-02-22 02:00:08

5

你的情況是量身訂做的派生類型。

UserProfile應該是抽象的,有兩個具體類型稱爲TeacherStudent
這些繼承的類型可以分別具有不同的屬性。