Если модель небольшая, возможно, проще всего ее восстановить.Если вы предпочитаете исправить это, вы можете изменить XML в редакторе XML вручную, до или после преобразования.Проблема, в моем случае, заключалась в том, что атрибуты EntityType были неправильными - в частности, пространство имен было неправильным.Я не уверен, как это правильно работало в VS2008, но у меня не было желания заниматься этим дальше.Если вы не возражаете против потери макета вашей модели, самый простой способ исправить это - удалить все, что находится внутри тега <Diagram>
, чтобы это выглядело так:
<!-- Diagram content (shape and connector positions) -->
<edmx:Diagrams>
<Diagram Name="YourDiagramName">
</Diagram>
</edmx:Diagrams>
Сохраните его и откройте сновамодель в конструкторе.Проблема должна быть решена сейчас.
Если вы хотите сохранить свой макет, а не просто удалять все внутри тега <Diagram>
, вам необходимо исправить любые атрибуты EntityType, которые не являются правильными.Хитрость заключается в том, чтобы убедиться, что указано полное имя типа.В моем случае в пространстве имен было что-то лишнее - не знаю, как оно туда попало или как оно работало в VS2008, но исправить это - первый шаг.Вы можете проверить свое пространство имен и имя сущности, посмотрев на сгенерированный код для модели.
Я пробовал это решение как в VS2008, так и в VS2010 и получил разные результаты.В VS2010 простое исправление атрибутов EntityType решило проблему немедленно.В VS2008 я получил ошибку при повторном открытии модели: «Неверный параметр».Чтобы решить эту проблему, я снова смог вручную отредактировать XML.На этот раз я удалил все теги <AssociationConnector>
(и все дочерние элементы).Затем сохранил файл и все снова заработало.