När du arbetar med en polymorf typhierarki bör din samlingsvariabel och dina LINQ-frågor börja i termer av basklassen. Till exempel, för att läsa alla dokument av typ A tillbaka från databasen skulle du skriva:
var collection = database.GetCollection<D>("mycol");
var query = collection.AsQueryable<D>().OfType<A>();
foreach (var a in query)
{
// process document of type A
}
För diagnostiska ändamål kan du se motsvarande inbyggda MongoDB-fråga med:
var json = ((MongoQueryable<A>)query).GetMongoQuery().ToJson();
Observera att du måste skicka en fråga till en MongoQueryable (inte MongoQueryable