Я работал в L2E с 3 простыми таблицами, цели которых довольно просты: Users, Users_Roles, Roles.
У пользователей была связь 1: много с Users_Roles, на которую ссылается столбец UserID (уникальный идентификатор),В то время Роли не имели никакого отношения к каким-либо таблицам.Я привел все 3 таблицы в конструктор, который отражал отображение Users в Users_Roles, а Roles располагался сам по себе.
Реализация ролей должна быть сопоставлена с Users_Roles в отношениях многие: многие, я перешел в студию управления,Я добавил отношения от Roles к Users_Roles и сохранил его.Затем я вернулся к VS и сделал логический следующий логический шаг - попытался обновить модель Entity, щелкнув правой кнопкой мыши «Обновить модель из базы данных».Он показал все три таблицы в своем списке обновлений.После обновления визуальные отношения не изменились.Я попытался перекомпилировать, чтобы увидеть, были ли внесены какие-либо изменения, но получил две ошибки, отличающиеся только номерами строк:
Error 3 Error 3034: Problem in Mapping Fragments starting at lines 177, 192:
Two entities with possibly different keys are mapped to the
same row. Ensure these two mapping fragments map both ends
of the AssociationSet to the corresponding columns.
C:*\Model1.edmx 178 15 MVCTestApp
Попытался отладить ошибку безрезультатно.В конце концов расстроился, удалил модель и перестроил ее.Отношения были признаны, дизайнер был обновлен должным образом, жизнь была хорошей.
Это не первый раз, когда я хотел вывести дизайнера наружу и похоронить его: неделю назад или около того, у меня былосмелость удалить таблицу и очень быстро узнал, что при удалении таблицы в конструкторе только удаляет ее из конструктора;его отображения остаются.
Итак, несколько вопросов:
1) это поведение ограничено VS 2008?Вскоре у меня будет 2010 год, и я надеюсь, что конструктор функционирует, как и ожидалось,
2), есть ли другие инструменты, которые могут заменить встроенный конструктор, который действительно работает,
3)Есть ли способ сделать обновление из модели фактически обновленным - возможно, какой-то трюк, о котором я не знаю, кроме удаления всей модели, таким образом теряя все мои другие отношения, которые я установил вручную?