title: Migrating from EF5 to EF6: InversePropertyAttribute broken?
body: <p>I have a class setup similar to the code below.</p>
  
  <pre><code>public abstract class Record&lt;T&gt;
  where T : class
  {
      [Key]
      public long Id { get; set; }
  
      public long MasterId { get; set; }
  
      [ForeignKey("MasterId")]
      public virtual T Master { get; set; }
  
      [InverseProperty("Master")]
      public virtual ICollection&lt;T&gt; Suggestions { get; set; }
  }
  </code></pre>
  
  <p>This allows me to create classes like below with minimal boilerplate code that can have "suggestions" - minor changes that are then merged in when approved.</p>
  
  <pre><code>public class Concrete : Record&lt;Concrete&gt;
  {
      public string Foo { get; set; }
  }
  </code></pre>
  
  <p>In EF5, this used to work flawlessly. However, I am now getting the below error message at <em>runtime</em>:</p>
  
  <blockquote>
    <p>The entity type 'Foo.Models.Concrete' to which the navigation property
    'Suggestions' 
    refers is not the same as the type 'Foo.Models.Record`1[[Foo.Models.Concrete, Foo,
    Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' on which the inverse 
        navigation property 'Master' is declared.</p>
  </blockquote>
  
  <p>Is there any way to fix this issue, or is there a better design structure that I could be using to tackle this problem?</p>