在asp.net mvc EF中创建2个表之间的关系表

我创建:

  • 自定义成员资格提供程序
  • 自定义角色提供者
  • 用户模型
  • 角色模型

它正确地创建了2个自定义表格。 现在我想在两列之间创建用户和角色之间的表:RoleId,UserId

我应该调整我的模型来教EF来创建这个关系表(UsersInRole)?

用户型号:

 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 class Role
{

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

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

    public ICollection AssignedUsers { get; set; }

}
0
额外 编辑
意见: 1

2 答案

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
额外

如果您使用的是代码优先的EF,那么您所需要做的就是将用户集合添加到角色类,反之亦然。 EF将此双向链接用作在底层数据存储中创建多对多关系的信号。总而言之,你的课堂会增加这样的东西......

public class User
{
  ...

  List Roles {get; set;}

}

public class Role
{
  ...

  List Users {get; set;}
}
0
额外