Breeze Query Slow, но Ajax-вызовы быстрые

У меня есть одностраничное приложение с хранилищем и единицей работы. Реализация похожа на реализацию проекта TempHire. Я загружаю свои метаданные в shell.js. Моя единица работы и репозиторий находятся в разных проектах и ​​упоминаются в моем проекте. Кроме того, моя единица работы использует EFContextProvider для получения данных.

Однако мои запросы выполняются очень медленно. Бриз запросы очень медленные (и очень часто истекают). Запрос как unitofwork.objectname.fetch() (где получить данные из пути, controllername/Actionname) займет много времени. Тем не менее, мой запрос ajax быстрый. Если я сделаю тот же призыв к тому же действию controllername/Actionnameответ будет очень быстрым.

Я не уверен, предоставил ли я достаточно информации (поскольку я не знаю, где искать проблему), но уточню, если это необходимо.

1 ответ

Сначала проверьте и убедитесь, что метаданные извлекаются только один раз. Это должно произойти непосредственно перед выполнением первого запроса. Если вы видите, что его извлекают снова и снова, то в вашем приложении происходит что-то еще. Есть несколько других постов на SO, где люди случайно сделали это.

Таким образом, суть в том, что ваш первый запрос к любому EntityManager может быть медленным, потому что он выполняет как запрос метаданных, так и запрос данных, но каждый следующий запрос после этой точки должен быть довольно быстрым.

Другие вопросы по тегам