Динамический перевод, чтобы избежать синтаксических ошибок C #

Рассмотрим следующую таблицу базы данных (SQL Server 2005). Я хотел бы использовать это в EF (v6, .net 4.5.1) с функцией Translate, но после поиска кажется, что это не поддерживается.

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

Использование сопоставления по соглашению, которое создаст классFoo с собственностьюFoo который не поддерживается синтаксисом C #. Я пытался использоватьColumnAttribute:

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

Кажется, это работает, но я бы хотел, чтобы начальный запрос страницы загружал блоки данных через хранимую процедуру и MARS (и использовал общую структуру, чтобы я мог использовать ее на других страницах), поэтому я вызвал хранимую процедуру и прошел по циклу. наборы результатов, вызовObjectContext.Translate через отражение (аналогично приведенному ниже, но это сокращенно):

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 });
}

Отмножественный вещи Я прочитал, сопоставление ColumnAttribute не поддерживается. ОтMSDN:

EF не учитывает сопоставление при создании сущностей с использованием метода Translate. Он просто сопоставит имена столбцов в наборе результатов с именами свойств в ваших классах.

И конечно же, я получаю и ошибку:

Считыватель данных несовместим с указанным «Namespace.Foo». Элемент типа «Имя» не имеет соответствующего столбца в считывателе данных с тем же именем.

Проблема в том, что я не вижу альтернативы или способа указать / намекнуть на отображение. Я мог бы изменить имя класса, но это менее желательно, чем имена свойств.

Любые обходные пути, или любой другой способ динамической загрузки данных без использованияTranslate?