¿División de entidad cuando la columna clave tiene nombres diferentes?

Estoy usando Entity Framework 4.3.1 Code-First y necesito dividir una entidad entre dos tablas. Las tablas tienen una clave principal compartida, y es de 1 a 1, pero las columnas no tienen el mismo nombre en cada tabla.

No controlo el diseño de los datos, ni puedo solicitar ningún cambio.

Entonces, por ejemplo, las tablas SQL podrían ser

Y esta sería mi entidad ...

public class MyEntity
{
    public int Id {get; set;}
    public string Name {get;set}
    public string FromAnotherTable {get;set;}
}

Y aquí está el mapeo que tengo.

public class MyEntityMapping : EntityTypeConfiguration<MyEntity>
{
    public MyEntityMapping()
    {
        this.Property(e => e.Id).HasColumnName("ThePrimaryKeyId");
        this.Property(e => e.Name).HasColumnName("MyDatabaseName");
        this.Property(e => e.FromAnothertable).HasColumnName("AnotherTableColumn");
        this.Map(m =>
            {
                m.Properties(e =>
                     {
                         e.Id,
                         e.Name
                     });
                m.ToTable("MainTable");
            });
        this.Map(m =>
            {
                m.Properties(e =>
                     {
                         e.Id,
                         e.FromAnotherTable
                     });
                m.ToTable("ExtendedTable");
            });
}

Dado que la clave compartida entre ellos tiene un nombre de columna diferente, no estoy seguro de cómo asignarla. Esta asignación se compilará, pero falla en el tiempo de ejecución porque EF emite SQL buscando la columna "ThePrimaryKeyId" en la tabla "ExtendedTable", que no existe.

EDITA Para aclarar, lo que he definido anteriormente puede (y funciona) si la PK en la "Tabla Extendida" siguió las convenciones de nomenclatura. Pero no lo hace y no puedo cambiar el esquema.

ásicamente, lo que necesito que EF emita es una declaración SQL como

SELECT
    [e1].*,   /*yes, wildcards are bad. doing it here for brevity*/
    [e2].*
FROM [MainTable] AS [e1]
INNER JOIN [ExtendedTable] AS [e2]  /*Could be left join, don't care. */
    ON  [e1].[ThePrimaryKeyId] = [e2].[NotTheSameName]

Pero lo único que parece querer emitir es

 SELECT
        [e1].*,
        [e2].*
    FROM [MainTable] AS [e1]
    INNER JOIN [ExtendedTable] AS [e2]
        ON  [e1].[ThePrimaryKeyId] = [e2].[ThePrimaryKeyId] /* this column doesn't exist */

Edita Intenté el enfoque 1 a 1 nuevamente por sugerencia de NSGaga. No funcionó, pero aquí están los resultados. Entidades

public class MyEntity
{
    public int Id { get; set; }
    public int Name { get; set; }
    public virtual ExtEntity ExtendedProperties { get; set; }
}
public class ExtEntity
{
    public int Id { get; set; }
    public string AnotherTableColumn { get; set; }
    public virtual MyEntity MainEntry { get; set; }
}

Aquí están las clases de mapeo

public class MyEntityMapping : EntityTypeConfiguration<MyEntity>
{
    public MyEntityMapping()
    {
        this.Property(e => e.Id).HasColumnName("ThePrimaryKeyId");
        this.Property(e => e.Name).HasColumnName("MyDatabaseName");
        this.ToTable("MainTable");
        this.HasKey(e => e.Id);
        this.HasRequired(e => e.ExtendedProperties).WithRequiredPrincipal(f => f.MainEntry);
    }
}

public class ExtEntityMapping : EntityTypeConfiguration<ExtEntity>
{
    public ExtEntityMapping()
    {
        this.Property(e => e.Id).HasColumnName("NotTheSameName");
        this.Property(e => e.AnotherTableColumn).HasColumnName("AnotherTableColumn");
        this.ToTable("ExtendedTable");
        this.HasKey(e => e.Id);
        this.HasRequired(e => e.MainEntry).WithRequiredDependent(f => f.ExtendedProperties);
    }
}

Esta configuración recibe el mensaje

"Column or attribute 'MyEntity_ThePrimaryKeyId' is not defined in 'ExtendedTable'"

Cambiando la línea final del mapa a

this.HasRequired(e => e.MainEntry).WithRequiredDependent(f => f.ExtendedProperties).Map(m => M.MapKey("NotTheSameName"));

Devuelve este mensaje

"Each property name in a type must be unique. property name 'NotTheSameName' was already defined."

Cambiando la clave asignada para usar la columna de la tabla primaria,MapKey("ThePrimaryKeyId"). devuelve este mensaje

"Column or attribute 'ThePrimaryKeyId' is not defined in 'ExtendedTable'"

La eliminación de laId propiedad de laExtEntity class arroja un error porque la entidad no tiene una clave definida.

Respuestas a la pregunta(16)

Su respuesta a la pregunta