Advertencia de lanzamiento de compilación ASP MVC para la aplicación ¿Propiedad de navegación de roles de usuario?

Tengo el siguiente modelo de ApplicationUser:

public class ApplicationUser : IdentityUser
{
    public string FirstName { get; set; }
    public string LastName { get; set; }

    public virtual ICollection<ApplicationRole> Roles { get; set; }

    public bool HasRole(string _role)
    {
        return Roles.Any(r => r.Name == _role);
    }

    public bool HasPermission(string _permission)
    {
        return Roles.Any(r => r.Permissions
              .Any(p => p.Name == _permission));
    }
}

Pero cuando ejecuto una compilación, aparece el siguiente mensaje de advertencia:

ApplicationUser.Roles hides inherited member 
'IdentityUser<string, IdentityUserLogin,IdentityUserRole, IdentityUserClaim>.Roles. 
To make the current member override that implementation, add the overide keyword. Otherwise 
add the new keyword.

¿Hay algún problema con mi implementación o debería hacerse de manera diferente? He agregado la propiedad de navegación Roles para poder implementar los métodos HasRole y HasPermission.

Los modelos My Permission y ApplicationRole se implementan de la siguiente manera:

public class Permission
{
    public byte Id { get; set; }
    public string Name { get; set; }

    public virtual List<ApplicationRole> Roles { get; set; }
}


public class ApplicationRole : IdentityRole
{
    public ApplicationRole() : base() { }
    public ApplicationRole(string name) : base(name) { }

    public virtual ICollection<Permission> Permissions { get; set; }

    public bool IsPermissionInRole(string _permission)
    {
        return Permissions.Any(p => p.Name == _permission);
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta