0
我有以下問題: 我的用戶類包含一個排名字段。如何定義Rank,因此它的行爲就像枚舉類型,但是在數據庫上,首先使用代碼:S(不知道該怎麼說)。如何... codefirst中的簡單enumlike類型?
這是我的用戶等級:
public class User
{
[Key]
[Required]
[StringLength(30, MinimumLength = 3)]
public String Name { get; set; }
[EmailAddress]
[MaxLength(254)]
public String Email { get; set; }
[Required]
[DataType(DataType.Password)]
public String Password { get; set; }
public String Salt { get; set; }
//[DataType(DataType.ImageUrl)]
public String Avatar { get; set; }
public bool Banned { get; set; }
public Rank Rank { get; set; }
public String Information { get; set; }
}
而且這是我第一次嘗試:
public class Rank
{
[Key]
public int RankId { get; set; }
[Required]
[StringLength(50)]
public String Name { get; set; }
}
它的工作原理,當我添加:
[ForeignKey("RankId")]
public Rank Rank { get; set; }
public int RankId { get; set; }
但我一直告訴說在那裏使用int RnakId是浪費和字段名稱就夠了...我想要我的排名包含他們的排名的字符串 - 例如:admin,user,mod。所以我以後可以選擇一些已經定義的等級,而不是輸入它的時間。 你知道其他方法嗎?
什麼時候我做'public String Name {get;組; }'a'[Key]'? – Kmaczek
然後不需要單獨的表 –
不知道上下文。那麼我認爲你已經擁有的解決方案是最好的。 有時當我需要「枚舉」功能時,我會在名爲「SYSTEM_KEY」的Rank中創建另一個字段,其中我將存儲一些字符串用於比較應用程序內部。 通過這種方式,您可以靈活地重新命名級別並添加新級別而無需更改應用程序。當然,如果你需要新的行爲,你需要改變應用程序,並尋找另一個「SYSTEM_KEY」 –