Wenn Sie mit einer polymorphen Typhierarchie arbeiten, sollten Ihre Sammlungsvariable und Ihre LINQ-Abfragen in Bezug auf die Basisklasse beginnen. Um beispielsweise alle Dokumente des Typs A aus der Datenbank zurückzulesen, würden Sie schreiben:
var collection = database.GetCollection<D>("mycol");
var query = collection.AsQueryable<D>().OfType<A>();
foreach (var a in query)
{
// process document of type A
}
Zu Diagnosezwecken können Sie die entsprechende native MongoDB-Abfrage anzeigen mit:
var json = ((MongoQueryable<A>)query).GetMongoQuery().ToJson();
Beachten Sie, dass Sie die Abfrage in ein MongoQueryable (nicht MongoQueryable