0

我有以下问题:我的用户类包含一个排名字段。如何定义 Rank 使其行为类似于枚举类型,但在数据库上,首先使用代码:S(不知道怎么说)。

这是我的用户类:

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 是一种浪费,而字段 Name 就足够了......我希望我的排名包含带有他们排名的字符串 -.- 例如:管理员、用户、国防部。所以我以后可以选择一些已经定义的等级,而不是每次都输入。你知道这样做的任何其他方法吗?

4

1 回答 1

1

您可以在代码中的枚举之间来回解析它,但这需要代码编辑和重新编译以添加新等级。

您无法摆脱 id 字段,因为它是外键所必需的。id 在存储在 ui 上的组合框中时很有用。

于 2013-10-22T22:45:23.717 回答