Wanneer u met een polymorfe typehiërarchie werkt, moeten uw verzamelingsvariabele en uw LINQ-query's beginnen in termen van de basisklasse. Om bijvoorbeeld alle documenten van het type A terug te lezen uit de database, schrijft u:
var collection = database.GetCollection<D>("mycol");
var query = collection.AsQueryable<D>().OfType<A>();
foreach (var a in query)
{
// process document of type A
}
Voor diagnostische doeleinden kunt u de bijbehorende native MongoDB-query bekijken met:
var json = ((MongoQueryable<A>)query).GetMongoQuery().ToJson();
Merk op dat u een query moet casten naar een MongoQueryable (niet MongoQueryable