Dziedziczenie w MongoDb: jak żądać wystąpień określonego typu

W ten sposób użyłem dziedziczenia w Entity Framework (POCO):

<code>ctx.Animals // base class instances (all instances)
ctx.Animals.OfType<Cat>  // inherited class Cat's instances only
ctx.Animals.OfType<Dog> // inherited class Dog's instances only
</code>

To jedyny podobny sposób znaleziony w MongoDb (Odniesienie MongoDb):

<code>var query = Query.EQ("_t", "Cat");
var cursor = collection.FindAs<Animal>(query);
</code>

Zauważ, że w tym ostatnim przypadku mam do czynienia z dyskryminatorem („_t”) i hardcode moją nazwą klasy, która nie jest całkiem wygodna i wygląda okropnie. Jeśli przegapię zapytanie, otrzymałem wyjątek przy próbie wyliczenia. Czy coś przegapiłem? Moja sugestia była taka, że ​​dokument Db, który przechowuje obiekty „tak jak jest”, powinien łatwo obsługiwać dziedziczenie.

questionAnswers(5)

yourAnswerToTheQuestion