Traducción dinámica para evitar errores de sintaxis de C #

Considere la siguiente tabla de base de datos (SQL Server 2005). Me gustaría usar esto en EF (v6, .net 4.5.1) con la función Traducir, pero después de buscar parece que esto no es compatible.

CREATE TABLE Foo 
(
     pk INT NOT NULL PRIMARY KEY, 
     Foo VARCHAR(100)
)

Usar mapeo por convención que crearía una claseFoo con una propiedadFoo que no es compatible con la sintaxis de C #. Traté de usar elColumnAttribute:

public partial class Foo
{
    [Key]
    public virtual int pk {get;set;}
    [Column("Foo")]
    public virtual string Name {get;set;}
}

Esto parece funcionar, pero me gustaría hacer que la solicitud de la página inicial cargue cantidades de datos a través del procedimiento almacenado y MARS (y use una estructura genérica para poder reutilizarlo en otras páginas), así que llamé al procedimiento almacenado y recorrí el resultado establece, llamandoObjectContext.Translate mediante reflexión (similar a la siguiente, pero esto se abrevia):

var methTranslate = typeof(ObjectContext).GetMethod("Translate", new[] { typeof(DbDataReader), typeof(string), typeof(MergeOption) });

foreach (var className in classNames)
{
    // ...
    var translateGenericMethod = methTranslate.MakeGenericMethod(classType);
    // ...
    reader.NextResult();
    var enumerable = (IEnumerable)translateGenericMethod.Invoke(ObjectContext, 
        new object[] { reader, entitySet.Name, MergeOption.AppendOnly });
}

Demúltiple cosas He leído, la asignación ColumnAttribute no es compatible. DeMSDN:

EF no tiene en cuenta ningún mapeo cuando crea entidades usando el método Traducir. Simplemente hará coincidir los nombres de columna en el conjunto de resultados con los nombres de propiedad en sus clases.

Y efectivamente, recibo un error:

El lector de datos es incompatible con el 'espacio de nombres.Foo' especificado. Un miembro del tipo, 'Nombre', no tiene una columna correspondiente en el lector de datos con el mismo nombre.

El problema es que no veo ninguna alternativa o forma de especificar / insinuar el mapeo. Podría cambiar el nombre de la clase, pero eso es menos deseable que los nombres de propiedad.

Cualquier solución alternativa, o cualquier otra forma de cargar datos dinámicamente sin usarTranslate?

Respuestas a la pregunta(1)

Su respuesta a la pregunta