Khi làm việc với hệ thống phân cấp kiểu đa hình, biến bộ sưu tập của bạn và các truy vấn LINQ của bạn phải bắt đầu theo lớp cơ sở. Ví dụ, để đọc lại tất cả các tài liệu loại A từ cơ sở dữ liệu, bạn sẽ viết:
var collection = database.GetCollection<D>("mycol");
var query = collection.AsQueryable<D>().OfType<A>();
foreach (var a in query)
{
// process document of type A
}
Đối với mục đích chẩn đoán, bạn có thể xem truy vấn MongoDB gốc tương ứng bằng cách sử dụng:
var json = ((MongoQueryable<A>)query).GetMongoQuery().ToJson();
Lưu ý rằng bạn phải truyền truy vấn tới MongoQueryable (không phải MongoQueryable