Downcasting con Entity Framework

Tengo un proyecto donde he definido en EF yEmployer como una clase derivada deUser. En mi proceso, creo un usuario sin saber si eventualmente será un empleador (u otro tipo de usuarios) y luego necesito convertirlo. Al principio lo intenté (Intellisense indicó que existe una conversión explícita):

Employer e = (Employer) GetUser();

pero en tiempo de ejecución obtuve:

Unable to cast object of type 'System.Data.Entity.DynamicProxies.User_7B...0D' to type 'Employer'.

so intenté escribir un convertidor:

public partial class User
{
    public static explicit operator Employer(User u)
    {

pero me sale el error:

Error   21  'User.explicit operator Employer(User)': user-defined
conversions to or from a derived class are not allowed
C:\Users\..\Documents\Visual Studio 2010\Projects\..\Website\Models\EF.Custom.cs

multa. Luego sobrecargué el constructor paraEmployer Me gusta esto

public partial class Employer
{
    public Employer(User u)
    {
        this.Id = u.Id;
        this.Claims = u.Claims;
        // etc.
    }
}

y pensé que podría simplemente hacer:

Employer e = new Employer(GetUser());

pero cuando lo ejecuto me sale el error:

System.InvalidOperationException was unhandled by user code
  Message=Conflicting changes to the role 'User' of the
  relationship 'EF.ClaimUser' have been detected.
  Source=System.Data.Entity
  StackTrace:
       [...]
       at Controllers.AuthController.Register(String Company, String GivenName, 
       String Surname, String Title, String Department) in C:\Users\..\Documents\
       Visual Studio 2010\Projects\..\Website\Controllers\AuthController.cs:line

como último recurso Intenté escribir esto:

        Employer e = Auth.Claims("id")
            .Where(x => x.Value == Auth.NameIdentifier())
            .Select(x => x.User)
            .Cast<Employer>()
            .Single();

... GetUser () devuelve un objeto de tipoUser que no ofrece el.Cast<> así que utilicé una consulta directa para llegar allí ... pero aún recibo la excepción de conversión de objetos proxy dinámicos.

soy mi pregunta es: ¿cómo puedo bajar cuando el objeto tiene persistencia a través de EF?

Respuestas a la pregunta(2)

Su respuesta a la pregunta