Dynamic Translate to avoid C# syntax errors
<p>Consider the following database table (SQL Server 2005). I'd like to use this in EF (v6, .net 4.5.1) with the Translate function but after searching seems this is not supported.</p>

<pre><code>CREATE TABLE Foo 
(
     pk INT NOT NULL PRIMARY KEY, 
     Foo VARCHAR(100)
)
</code></pre>

<p>Using by-convention mapping that would create a class <code>Foo</code> with a property <code>Foo</code> which is not supported by C# syntax. I tried using the <code>ColumnAttribute</code>:</p>

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

<p>This appears to work, but I'd like to make the initial page request load gobs of data via stored procedure and MARS (and use a generic structure so I can reuse it on other pages), so I called the stored procedure and looped through the result sets, calling <code>ObjectContext.Translate</code> via reflection (similar to the below, but this is abbreviated):</p>

<pre><code>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 });
}
</code></pre>

<p>From <a href="https://stackoverflow.com/a/15789868/295686">multiple</a> <a href="https://stackoverflow.com/q/39090623/295686">things</a> I've read, the ColumnAttribute mapping is not supported. From <a href="https://msdn.microsoft.com/en-us/data/jj691402/" rel="nofollow noreferrer">MSDN</a>:</p>

<blockquote>
  <p>EF does not take any mapping into account when it creates entities using the Translate method. It will simply match column names in the result set with property names on your classes.</p>
</blockquote>

<p>And sure enough, I get and error:</p>

<blockquote>
  <p>The data reader is incompatible with the specified 'Namespace.Foo'. A member of the type, 'Name', does not have a corresponding column in the data reader with the same name.</p>
</blockquote>

<p>The problem is, I do not see any alternative or way to specify/hint at the mapping. I could change the class name but that is less desirable than the property names.</p>

<p><strong>Any workarounds,</strong> or any other way to dynamically load data without using <code>Translate</code>?</p>