0

私が作成しました:

  • カスタム カスタム メンバーシップ プロバイダー
  • カスタム ロール プロバイダー
  • ユーザーモデル
  • ロールモデル

2 つのカスタム テーブルが正しく作成されます。ここで、Users と Roles の間に、RoleId、UserId の 2 つの列を持つテーブルを作成したいと考えています。

モデルを微調整して、この関係テーブル (UsersInRole) を作成するように 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; }

}
4

2 に答える 2

1

コード ファースト EF を使用している場合は、Users のコレクションを Role クラスに追加するだけです。EF は、この双方向リンクを信号として受け取り、基になるデータ ストアで多対多のリレーションシップを作成します。要約すると、クラスは次のように拡張されます...

public class User
{
  ...

  List<Role> Roles {get; set;}

}

public class Role
{
  ...

  List<User> Users {get; set;}
}
于 2012-05-24T16:17:44.290 に答える
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; }

}
于 2012-05-24T16:12:12.403 に答える