Наследование в MongoDb: как запрашивать экземпляры определенного типа
Вот как я использовал наследование в 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>
Это единственный подобный способ, который я нашел в MongoDb (MongoDb ссылка):
<code>var query = Query.EQ("_t", "Cat"); var cursor = collection.FindAs<Animal>(query); </code>
Обратите внимание, что в последнем случае мне приходится иметь дело с дискриминатором (& quot; _t & quot;) и жестким кодом моего имени класса, что не совсем удобно и выглядит ужасно. Если я пропускаю запрос, я получаю исключение при попытке перечисления. Я что-то пропустил? Моим предложением был документ Db, в котором хранятся объекты «как есть». должен легко обрабатывать наследство.