EF Eifriger Abruf der abgeleiteten Klasse

Ich benutze EF6 und versuche eifrig, die gesamte Struktur eines Objekts abzurufen. Das Problem ist, dass ich Vererbung verwende.

Sagen wir mal, ich habe diesen Unterricht.

DbContext

DbSet<A> A { get; set; }

Beispielklassen

public class A
{
    public string Id { get; set; }
    public IList<Base> Bases { get; set; }
}

public abstract class Base
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public abstract class Base1 : Base
{
    public SomeClass SomeClass { get; set; }
}

public class Base2 : Base1
{

}

public class Base3 : Base1
{
    public SomeOtherClass SomeOtherClass { get; set; }
}

Der Fehler, den ich bekomme, ist:

The Include path expression must refer to a navigation property defined on the type. 
Use dotted paths for reference navigation properties and the Select operator for collection navigation properties.

Warum funktioniert das nicht mit den folgenden?

    public IEnumerable<A> GetAll(string id)
    {

        return _ctx.A
               .Include(x => x.Bases.OfType<Base1>().Select(y=>y.SomeClass))
               .Where(x => x.Id.Equals(id)).ToList();
    }

Neues Beispiel

public IEnumerable<A> GetAll(string id)
{

   var lists = _dbContext.A.Where(x => x.Id == id);
   lists.SelectMany(a => a.Bases).OfType<Base1>().Include(e=>e.SomeClass).Load();
   lists.SelectMany(b => b.Bases).OfType<Base3>().Include(e => e.SomeOtherClass).Load();

   return lists;
}

EDIT: Ein neues Beispiel wurde hinzugefügt, das zu funktionieren scheint.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage