Når du arbejder med et polymorfisk typehierarki, bør din samlingsvariabel og dine LINQ-forespørgsler starte i form af basisklassen. For eksempel, for at læse alle dokumenter af type A tilbage fra databasen, ville du skrive:
var collection = database.GetCollection<D>("mycol");
var query = collection.AsQueryable<D>().OfType<A>();
foreach (var a in query)
{
// process document of type A
}
Til diagnostiske formål kan du se den tilsvarende indbyggede MongoDB-forespørgsel ved hjælp af:
var json = ((MongoQueryable<A>)query).GetMongoQuery().ToJson();
Bemærk, at du skal caste forespørgsel til en MongoQueryable (ikke MongoQueryable