私のサイトには多くの組み合わせを持つ 3 つのエンティティがあります。
次の階層を作成します。
- 各ユーザーには、UserRoles のコレクションがあります。
- 各 UserRole には PermissionRecords の固定コレクションがあります
- 各 PermissionRecord には、ユーザーごとに異なる PermissionRecordPrivileges のフィールドがあります。
ユーザーの権限を取得したいと思います (permissionRecord および UserRole コレクションの取得は非常に簡単です)。私が理解しているように、次のデータをマージするテーブルを作成する必要があります: UserId、PermissionRecordId、PermissionPrivilegesId (主キーを作成する 3 つの外部キー)
EF 5 (またはそれ以前) を使用してこれを行うにはどうすればよいですか?
コード:
public class BaseEntity
{
public int Id { get; set; }
}
public class User:BaseEntity
{
public virtual ICollection<UserRole> UserRoles{get;set;}
}
public class UserRole:BaseEntity
{
public ICollection<PermissionRecord> PermissionRecords { get; set; }
}
public class PermissionRecord : BaseEntity
{
public PermissionRecordPrivileges Privileges { get; set; }
}
public class PermissionRecordPrivileges : BaseEntity
{
public bool Create { get; set; }
public bool Read { get; set; }
public bool Update { get; set; }
public bool Delete { get; set; }
}