4

Using C# MongoDB LINQ with discriminatorは、私がやろうとしていることを正確に説明していますが、新しい公式の 2.0.1 ドライバーを使用しようとしています。

特殊なプロパティを持つ一連のサブクラスがあり、すべてが共通のプロパティを含む基本クラスから継承されています。Discriminator 属性は問題ないようで、サブタイプを使用してドキュメントの混合物を正常に保存できました。

次にできると思っていたのは、次のようなクエリでした。

  var subsetB = db.GetCollection<BaseClass>("Documents").AsQueryable<BaseClass>().OfType<SubclassB>();

タイプ SubclassB のすべてのドキュメントを取得します。ただし、ドキュメントや私が見つけた記事に記載されている AsQueryable() および OfType() メソッドは利用できないようです。

私は何かを見逃していましたか、それとも新しいドライバーでこれを達成するための推奨される代替方法はありますか?

4

1 に答える 1

3

そのための特別なサポートはありません。

識別子フィールドのフィルターを明示的に追加する必要があります _t

var results = await collection.Find(Builders<SubclassB>.Filter.Eq("_t", nameof(SubclassB))).ToListAsync();
于 2015-08-24T10:38:11.387 に答える