title: Is inheritance of navigation properties supported?
body: <p>Having difficulty finding relevant search results...</p>
  
  <p><strong>Given this model:</strong></p>
  
  <pre><code>public abstract class A
  {
      public int ID { get; set; }
      public int CustomerID { get; set; }
      public virtual Customer Customer { get; set; }
  }
  
  public class B : A
  {
  }
  
  public class C : A
  {
  }
  
  public class Customer
  {
      public int ID { get; set; }
      public virtual ICollection&lt;B&gt; Bs { get; set; }
      public virtual ICollection&lt;C&gt; Cs { get; set; }
  }
  </code></pre>
  
  <p><strong>With this configuration:</strong></p>
  
  <pre><code>protected override void OnModelCreating(DbModelBuilder modelBuilder)
  {
      modelBuilder.Entity&lt;A&gt;().ToTable("As");
      modelBuilder.Entity&lt;B&gt;().ToTable("Bs");
      modelBuilder.Entity&lt;C&gt;().ToTable("Cs");
  
      base.OnModelCreating(modelBuilder);
  }
  </code></pre>
  
  <p><strong>I get this result in the DB:</strong></p>
  
  <p><img src="https://i.stack.imgur.com/ZpZvD.png" alt="Database"></p>
  
  <p><strong>Question:</strong></p>
  
  <p>Is inheritance of navigation properties not supported? If I add <code>public string SomeSharedProperty { get; set; }</code> to <code>A</code> then as I would expect the column for that property only showed up in the <code>As</code> table.</p>
  
  <p>What reason is there for the <code>Customer_ID</code> column in the <code>Bs</code> and <code>Cs</code> table? Is there any way to tell EF to not map that inherited property?</p>
  
  <p>Thanks!</p>