0

このプロジェクトは、オペレーターが多くの役割を持つことができるというものでした。私が何を意味するかを理解できるように、コードから始めましょう。

TDOオペレーター:

[DisplayName("Operator")]
public class TDOperator
{


    public int TDOperatorId { get; set; }


    [DisplayName("First Name")]
    [Required]
    public string FirstName { get; set; }

    [Required]
    [DisplayName("Last Name")]
    public string LastName { get; set; }

    [Required]
    [DataType(DataType.EmailAddress)]
    [DisplayName("Email Adress")]
    public string EmailAddress { get; set; }




    [Required]
    public string Username { get; set; }

    [Required]
    [DataType(DataType.Password)]
    public string Password { get; set; }

    [HiddenInput(DisplayValue = true)]
    public DateTime LastLogin { get; set; }



    public List<string> RoleNames
    {
        get
        {
            return Roles.Select(x => x.Name).ToList();

        }
    }


    public virtual ICollection<Role> Roles { get; set; }



    [Required]
    [DisplayName("Topdesk Username")]
    public string TDUserName { get; set; }

    public virtual ICollection<TDOperator> Coaches { get; set; }
    public List<string> CoachNames
    {
        get
        {
            return Coaches.Select(x => x.ToString()).ToList();

        }
    }
    public virtual ICollection<TDOperator> Pupils { get; set; }
    public List<string> PupilNames
    {
        get
        {
            return Pupils.Select(x => x.ToString()).ToList();

        }
    }






    public override string ToString()
    {
        return this.FirstName + " " + this.LastName;
    }
}

そして役割用のもの

public class Role
{
    public int RoleID { get; set; }
    public string Name { get; set; }
    public int Priority { get; set; }
}

乱雑なコードで申し訳ありませんが、後でクリーンアップするつもりです。

これを実行すると、列を持つ3つのテーブルを持つデータベースが生成されました:

 - TDOperatorTDOperators
  1.TDOperator_TDOperatorId
  2.TDOperator_TDOperatorId1


 - TDOperators
  1.TDOperatorId
  2.FirstName
  3.LastName
  4.EmailAdress
  5.UserName
  6.PassWord
  7.LastLogin
  8.TDUsername 


 - Roles
  1.RoleId
  2.Name
  3.Priority
  4.TDOperator_TDOperatorId <<--- WTF!

これに関する問題は、ロールを 1 人のユーザーにしか割り当てることができないことです。たとえば、1 人の管理者と 1 人のユーザーしか存在できません。追加の外部キーテーブルを作成することになっていますが、そうではありません!

助けてください。

4

1 に答える 1