0

次の問題があります: ユーザー クラスにランク フィールドが含まれています。列挙型のように動作するようにランクを定義する方法ですが、データベースではコードを最初に使用します: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 で十分であると言われました...ランクに、admin、user、mod のようなランクの文字列を含めたいと思います。そのため、毎回入力する代わりに、後で定義済みのランクのいくつかを選択できます。これを行う他の方法を知っていますか?

4

1 に答える 1

1

コード内の列挙型の間で前後に解析できますが、新しいランクを追加するには、コードを編集して再コンパイルする必要があります。

外部キーに必要なため、id フィールドを取り除くことはできません。id は、UI のコンボボックスに格納するときに役立ちます。

于 2013-10-22T22:45:23.717 に答える