Breeze JS: ошибка в manager.fetchMetadata() после обновления с 1.4.4 до 1.4.5 для поддержки модели Entity Framework 6
Я только что обновил Breeze (клиент и сервер) с 1.4.4 до 1.4.5. Когда я переключился на сервер, на котором обновлен Breeze (используя Breeze 1.4.5, Entity Framework 6, Web Api 2, MVC 5), у меня возникла следующая ошибка при получении метаданных (manager.fetchMetadata()). Это сообщение об ошибке, которое я имею:
Запрос метаданных не выполнен для:
http://localhost:50015/breeze/Application/Metadata
, Невозможно проанализировать или импортировать метаданные: плохие свойства навигации; [Объект Object]
Если я укажу на сервер, основанный на Breeze 1.4.4, Entity Framework 5, Web Api 1, MVC 4, мой SPA не сработает на manager.fetchMetadata(). Это не соответствует обещанию.fail.
Обе модели Entity Framework указывают на одну и ту же базу данных, они имеют одинаковые сущности и одинаковые данные.
Была ли эта ошибка введена в Breeze 1.4.5? Или я пропустил шаг в процессе обновления?? В основном я использую точно такой же код в моем контроллере breeze с 1.4.4 до 1.4.5. Также клиент Breeze был обновлён до 1.4.5. Если вам нужны метаданные, дайте мне знать, и я смогу их предоставить.
2 ответа
Я обнаружил проблему, отладил функцию, которая извлекает метаданные, и обнаружил некоторые клиентские объекты, которые были определены с ассоциациями, указывающими на старые пространства имен Entity Framework 5. Это бросало исключение в CsdlMetadataParser.parse в Breeze. Я исправил пространства имен, и проблема была решена.
Извините, я понятия не имею, с чем вы сталкиваетесь. Мы преобразовали большинство примеров Breeze для использования Breeze 1.4.5 и WebApi 2/Entity Framework 6, поэтому вы можете взглянуть на них. Это включает в себя образцы DocCode и ToDo/Angular (среди прочих). Я думаю, что что-то пропустили во время вашего обновления.
Я обнаружил, что удаление всех соответствующих пакетов nuget, а затем переустановка, а затем, как правило, решает эти проблемы.
Пожалуйста, напишите, когда вы это выясните, чтобы мы могли сообщить другим.