ポリモーフィック型階層を操作する場合、コレクション変数とLINQクエリは基本クラスの観点から開始する必要があります。たとえば、タイプAのすべてのドキュメントをデータベースから読み戻すには、次のように記述します。
var collection = database.GetCollection<D>("mycol");
var query = collection.AsQueryable<D>().OfType<A>();
foreach (var a in query)
{
// process document of type A
}
診断の目的で、以下を使用して対応するネイティブMongoDBクエリを確認できます:
var json = ((MongoQueryable<A>)query).GetMongoQuery().ToJson();
OfType()呼び出しによってIQueryableのタイプが変更されたため、クエリをMongoQueryable (MongoQueryable