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.