2012-05-24 2 views
0

я создал:Создайте таблицу отношения между 2 таблицей в ASP.NET MVC EF

  • пользовательских пользовательского поставщик членства
  • поставщик пользовательской роли
  • модель пользователя
  • Роль модель

Правильно создайте мне 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<string> AssignedUsers { get; set; } 

} 

ответ

1

Если вы используете код-первых EF, то все, что вам нужно нужно сделать, это добавить коллекцию пользователей к классу Роли и наоборот. EF использует эту двухстороннюю ссылку в качестве сигнала для создания отношения «многие ко многим» в базовом хранилище данных. Подводя итог, ваши классы будут дополнены чем-то вроде этого ...

public class User 
{ 
    ... 

    List<Role> Roles {get; set;} 

} 

public class Role 
{ 
    ... 

    List<User> Users {get; set;} 
} 
0
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; } 

} 
Смежные вопросы