Creați tabelul de relații între două tabele în asp.net mvc EF

Am creat:

  • Furnizor personalizat personalizat personalizat
  • furnizorul de rol particular
  • un model de utilizator
  • un model de model

Mă creează corect cele 2 tabele personalizate. Acum vreau să creez tabelul dintre utilizatori și roluri cu 2 coloane: RoleId, UserId

Ar trebui sa imi schimbe modelele pentru a invata EF sa creeze acest tabel de relatii (UsersInRole)?

Model de utilizator:

 public class User
{

    [Key]
    public int UserId { get; set; }

    [Required]
    public Int32 CompanyId { get; set; }

    [Required]
    public String UserName { get; set; }

    public String Password { get; set; }

    public String PasswordSalt { get; set; }

    public String Email { get; set; }

    public Boolean IsApproved { get; set; }

    public Boolean IsLockedOut { get; set; }

    public DateTime CreateDate { get; set; }

    public DateTime LastLoginDate { get; set; }

    public DateTime LastPasswordChangedDate { get; set; }

    public DateTime LastLockoutDate { get; set; }

}

Model:

public class Role
{

    [Key]
    public int RoleId { get; set; }

    [Required]
    [MaxLength(20)]
    public string Name { get; set; }

    public ICollection AssignedUsers { get; set; }

}
0

2 răspunsuri

public class Role
{

    [Key]
    public int RoleId { get; set; }

    [Required]
    [MaxLength(20)]
    public string Name { get; set; }

    public ICollection AssignedUsers { get; set; }

}


 public class User
{

    [Key]
    public int UserId { get; set; }

    [Required]
    public Int32 CompanyId { get; set; }

    [Required]
    public String UserName { get; set; }

    public String Password { get; set; }

    public String PasswordSalt { get; set; }

    public String Email { get; set; }

    public Boolean IsApproved { get; set; }

    public Boolean IsLockedOut { get; set; }

    public DateTime CreateDate { get; set; }

    public DateTime LastLoginDate { get; set; }

    public DateTime LastPasswordChangedDate { get; set; }

    public DateTime LastLockoutDate { get; set; }

    public ICollection Roles{ get; set; }

}
0
adăugat

Dacă utilizați cod EF, atunci tot ce trebuie să faceți este să adăugați o colecție din clasa Users to Role și invers. EF ia această legătură în ambele sensuri ca un semnal pentru a crea o relație multi-la-multe în magazinul de date de bază. Pentru a rezuma, clasele dvs. ar fi majorate ceva de genul asta ...

public class User
{
  ...

  List Roles {get; set;}

}

public class Role
{
  ...

  List Users {get; set;}
}
0
adăugat