У меня есть одностраничное приложение с репозиторией и единицей работы. Реализация аналогична реализации проекта TempHire. Я загружаю свои метаданные в shell.js. Моя единица работы и хранилище находятся в разных проектах и упоминаются в моем проекте. Кроме того, моя единица работы использует EFContextProvider для получения данных.
Однако мои запросы выполняются очень медленно. Запросы Breeze очень медленные (и очень часто тайм-аут). Запрос типа unitofwork.objectname.fetch()
(где fetch получает данные из пути, controllername/Actionname
) займет много времени. Однако мой запрос ajax выполняется быстро. Если я сделаю один и тот же вызов одного и того же действия controllername/Actionname
, ответ будет очень быстрым.
Я не уверен, предоставил ли я достаточную информацию (поскольку я не знаю, где искать проблему), но уточнит, если это необходимо.
Сначала проверьте и убедитесь, что метаданные извлекаются только один раз. Это должно произойти непосредственно перед тем, как будет выполнен первый запрос. Если вы видите, что это происходит снова и снова, в вашем приложении происходит что-то еще. Есть еще несколько сообщений на SO, где люди случайно сделали это.
Таким образом, сеть состоит в том, что ваш FIRST-запрос на любом EntityManager может быть медленным, потому что он выполняет как запрос метаданных, за которым следует запрос данных, но каждый другой запрос после этого момента должен быть довольно быстрым.