Следует помнить, что данные в таблицах Windows Azure возвращаются вам в формате AtomPub. Итак, у вас есть процесс сериализации, который отображает XML в общедоступные свойства вашего DTO. Вы можете указать, что делать в случае дополнительных или отсутствующих свойств (рассматривать как ошибку или игнорировать). Кроме того, вы можете переопределить процесс сериализации, перехватывая событие ReadingEntity.
Итак, в контексте вашего вопроса вы должны иметь в виду, что если вы хотите сериализовать в Animal, вы не сможете привести к Dog, потому что вам нужно указать тип сериализации во время выполнения. Э.Г.
ctx.CreateQuery<TypeToSerialize>().Where(s => s.Property == blah);
Если вы выберете TypeToSerialize в качестве Собаки, вы всегда можете понизить до Animal, но это может быть не так полезно. Но если вы выбрали TypeToSerialize в качестве Animal, то информация, имеющаяся у Dog, уже будет отсутствовать, поскольку она нигде не будет сериализована и будет эффективно игнорироваться.
Причина, по которой я упоминаю ReadingEvent, заключается в том, что вы можете сами выполнить сериализацию, и тогда все ставки отключены. Вы можете проверить возвращаемые свойства и решить, к какому типу вы хотите сериализоваться, или вы можете сохранить дополнительные атрибуты в пакете свойств и т. Д.
НТН