title: Using OData with model inheritance cause missing property error
body: <p>I got this error in my OData with asp.net core implementation during the runtime :The EDM instance of type '[XXX.Asset Nullable=True]' is missing the property 'externalId'.</p>
  
  <p>The problem appear when I try to access the odata endpoint with the expand query: "/odata/v1/precinct?$expand=assets". It seems happening because I put the "ExternalId" property in my base class, its not happening if I put that property in the "Asset".</p>
  
  <p>Below is my recent codes:</p>
  
  <pre><code>public abstract class Entity
  {
      public int Id { get; set; }
  
      public string ExternalId { get; set; }
  }
  public class Precinct : Entity
  {
      public string Name { get; set; }
      public string Description { get; set; }
      public virtual IEnumerable&lt;Asset&gt; Assets { get; set; }
  
  }
  public class Asset : Entity
  {
      public string Name { get; set; }
      public string Description { get; set; }
  }
  </code></pre>
  
  <p>and here is my model configuration for ODATA</p>
  
  <pre><code>public class AssetModelConfiguration : IModelConfiguration
  {
      public void Apply(ODataModelBuilder builder, ApiVersion apiVersion)
      {
          var org = builder.EntitySet&lt;Asset&gt;("asset").EntityType;
          org.HasKey(x =&gt; x.ExternalId);
          org.Ignore(x =&gt; x.Id);
  
      }
  }
  </code></pre>
  
  <p>The strange thing is if I put that ExternalId in "Asset" class, it is working. Id property is the primary key while the "ExternalId" is marked as AlternateKey in the DBModel configuration.</p>
  
  <p>am I missing something in my odata configuration? already tried many things but couldn't find a good answer. Any help would be appreciated!</p>