Projections are deliberately not allowed on an expression using OfType().
The following test illustrates the desired behaviour:
public abstract class Base { public string A { get; set; } } public class T1 : Base { public string B { get; set; } } [Test] public void ProjectAfterOfTypeTest() { var server = MongoServer.Create(mongo.WriterConnectionString); var db = server.GetDatabase(mongo.Database); var collection = db.GetCollection<Base>("ProjectTest"); var t1 = new T1 { A = "T1.A", B = "T1.B" }; collection.Insert(t1); var query = from t in collection.AsQueryable().OfType<T1>() select t.B; var results = query.ToList(); Assert.That(results.Count, Is.EqualTo(1)); Assert.That(results[0], Is.EqualTo("T1.B")); }