Будьте очень очень осторожны, если вы используете наследование TPT (Table-Per-Type) с Entity Framework. Особенно , если у вас 26 типов документов. Я написал в блоге о генерации неработающего SQL для наследования TPT, а также открыл ошибку в Microsoft Connect . MS призналась в проблеме, и они говорят, что работают над этим, но не задерживают дыхание. Им потребовалось 3 месяца, чтобы осознать проблему, и все, что они сказали, было: «Мы знаем о проблемах производительности с иерархиями TPT. В настоящее время мы исследуем решения и ожидаем улучшения в этой области в будущем выпуске».
С 26 типами документов, даже с базовым запросом, EF потребуется около 2 минут, чтобы сгенерировать SQL (который будет около 8000 строк), и SQL Server, чтобы обработать его. Вы будете на 30 уровней в нелепых подзапросах. Избегайте наследования TPT любой ценой. Если вы только запускаете приложение, кажется, что оно работает, потому что у вас обычно есть только несколько подтипов, но как только вы добавите больше, ваше приложение замедлится до сканирования.