Я работаю на веб-сайте социальных медиа, мы разрабатываем систему уведомлений Facebook стиль Загрузка свойств навигации на производный класс в EF
Проблема заключается в том, что у нас есть Notification базовый класс и существует много различных производных классов уведомлений как MentionNotification, LikeNotification.
This производных классов много раз имеют свои собственные навигационные свойства, так что мы должны изменить NotificationRepository, чтобы включить все эти новые навигационные свойства,
я не могу найти способ, чтобы избежать изменений в хранилище базы избежать N +- запрос.
Любая идея будет приветствоваться
Идея заключается в создании чего-то, что не нужно менять базу репозитория уведомлений каждый раз, когда мне нужно добавить новый тип уведомления в систему. И он загружает все уведомления и его навигационные свойства. вызов notificationRepository.All() возвращает все уведомления в системе с загруженными навигационными свойствами. Если я добавлю новый проект с новым типом уведомлений, я все равно могу вызвать уведомлениеRepository.All() и новый тип также возвращается. – Deumber
Я не думаю, что это должно быть сделано только в одном запросе, потому что, возможно, сгенерированный запрос настолько трудоемкий, что мы все еще можем получать тайм-ауты, но может быть немного более умным, чтобы загружать уведомления типа и делать союзы, хотя худшее случай здесь будет N + 1. Просто играйте с разными идеями, чтобы решить эту проблему. – Deumber
Если это время, похоже, у вас есть [Декартовой продукт] (http://stackoverflow.com/questions/22161234/optimize-entity-framework-query/22625208#22625208) проблема. –