1

私は3つのテーブルを持っています

Roles
------
RoleId(PK)
RoleName
RoleDescription

CustomPermissions
-----------------
PermissionId(PK)
PermissionName
PermissionDescription

RolePermissionMappings
------------------------
RoleId (PK)
PermissionId(PK)
Role_RoleId(FK)
CustomPermission_PermissionId(FK)

個々に、ロールと CustomPermissions テーブルに値を追加できます。RolePermissionMappings テーブルの値をマップしようとしているときに、このエラーが発生します。

Entities in 'RolePermissionMappingContainer.RolePermissionMappings' 
participate in the 'RoleRolePermissionMapping' relationship. 0 related 'Role' were found. 1 'Role' is expected.

ロールには n 個の権限があり、RolePermissionMappings テーブルで次のようにマッピングする必要があります

RoleId   PermissionId
------   ------------
  2          2
  2          4
  2          5
  2          8
  2          10

ここに私のコード

bool ICustomPermissions.AddPermissionsToRole(RoleDataContract role, List<PermissionDataContract> permissions)
{
    using(_context = new RolePermissionMappingContainer())
    {
        RolePermissionMapping rpm = new RolePermissionMapping();
        {
            rpm.RoleId =  role.RoleId;

            foreach (PermissionDataContract pdc in permissions)
            {
                rpm.PermissionId =  pdc.PermissionId;
                //_context.RolePermissionMappings.AddObject(rpm);
                _context.RolePermissionMappings.AddObject(rpm);
                _context.SaveChanges();
            }
        }
    }
    return true;
}

エラーが発生した場所を修正してください。

4

1 に答える 1