Entity Framework 5 - Discriminador basado en Enum para clases derivadas

Tengo lo siguiente (abreviado para mayor claridad): una enumeración, una clase base con esa enumeración y dos clases derivadas que establecen la enumeración en un valor específico.

public enum MyEnum
{ 
    Value1, Value2
}

public class MyBaseClass
{ 
    public MyEnum { get; protected set; }
}

public class DerivedOne: MyBaseClass
{
    public DerivedOne { MyEnum = MyEnum.Value1; } 
}

public class DerivedTwo: MyBaseClass
{
    public DerivedTwo { MyEnum = MyEnum.Value2; }
}

Lo que quiero hacer es que Entity Framework 5 distinga automáticamente entre DerivedOne y DerivedTwo,con un discriminador basado en el valor MyEnum. Debería poder hacer esto porque, por convención, cada MyEnum == MyEnum.Value1 representa a DerivedOne, y MyEnum == MyEnum.Value2 representa a DerivedTwo.

Intenté esto en mi DbContext:

public class MyDbContext : DbContext
{
    DbSet<MyBaseClass> MyBaseClass { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<MyBaseClass>()
                    .Map<DerivedOne>(m => m.Requires(x => x.MyEnum == MyEnum.Value1));

        base.OnModelCreating(modelBuilder);
    }
}

Sin embargo, esto arroja la siguiente excepción InvalidOperationException:

La expresión 'x => (Convert (x.MyEnum) == 0)' no es una expresión de propiedad válida. La expresión debe representar una propiedad (...)

Editar: Creo que llegué un poco más lejos usando esto:

modelBuilder.Entity<MyBaseClass>().Map<DerivedOne>(m => m.Requires("MyEnum")
                                  .HasValue((Int32)MyEnum.Value1));

Ahora recibo esta EntityCommandCompilationException:

Problema al asignar fragmentos a partir de la línea (...) Se asigna el miembro de condición 'MyBaseClass.MyEnum' con una condición que no sea 'IsNull = False'. Elimine la condición en MyBaseClass.MyEnum o elimínela de la asignación.

¿Alguna pista sobre cómo puedo resolver esto? ¡Gracias!

Respuestas a la pregunta(4)

Su respuesta a la pregunta