在 asp.net mvc EF 中创建 2 个表之间的关系表
本文关键字:之间 关系 创建 net asp mvc EF | 更新日期: 2023-09-27 18:35:25
我创建了:
- 自定义自定义成员资格提供程序
- 自定义角色提供程序
- 用户模型
- 榜样
它正确地为我创建了 2 个自定义表。现在我想在用户和角色之间创建包含 2 列的表:角色 ID、用户 ID
我是否应该调整我的模型以教 EF 创建此关系表 (用户角色)?
用户型号:
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<string> AssignedUsers { get; set; }
}
如果使用代码优先 EF,则只需将用户集合添加到角色类,反之亦然。EF 将此双向链接作为在基础数据存储中创建多对多关系的信号。总而言之,您的课程将像这样增强......
public class User
{
...
List<Role> Roles {get; set;}
}
public class Role
{
...
List<User> Users {get; set;}
}
public class Role
{
[Key]
public int RoleId { get; set; }
[Required]
[MaxLength(20)]
public string Name { get; set; }
public ICollection<User> 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<Role> Roles{ get; set; }
}