Почему я не могу редактировать ссылочное ограничение и как это исправить?

#c# #entity-framework

#c# #entity-framework

Вопрос:

На этой странице описаны все шаги по редактированию RC: http://msdn.microsoft.com/en-us/library/dd456813.aspx

Это простые шаги, довольно интуитивно понятные для всех, кто работает с базой данных. Однако, когда я пытаюсь отредактировать его, я могу изменить основной компонент (как описано), и:

  • зависимость заполняется автоматически, я не могу установить ее вручную
  • Я не могу установить основной ключ
  • Я не могу установить зависимый ключ

Сетка для ключей просто мертва, я даже не могу щелкнуть по ней.

Я пытаюсь восстановить RC после того, как случайно изменил его (введя базовый класс для таблиц).

Вопрос — почему я не могу редактировать RC сейчас и как исправить эту проблему?

Одним из «решений» является удаление всех затронутых таблиц из модели и обновление модели из базы данных (см.: http://www.mikelindegardeonline.com/2011/03/03/entity-framework-insufficient-mapping-error /). Но это разрушает все мои другие изменения.

.Net 4.0.

РЕШАЕМАЯ

Я не заметил отсутствия маленького значка клавиши рядом с полями. Когда я добавил базовый класс, это повлияло не только на отношения, но и на ключевые поля. Без ключевых полей я не смог бы исправить отношения.

Ответ №1:

Откройте ваш EDMX-файл в редакторе XML (щелкните его правой кнопкой мыши в обозревателе решений, выберите «Открыть с помощью …», а затем «Редактор XML»).

Тогда вы можете изменить что угодно. Убедитесь, что вы просматриваете весь документ; некоторые изменения вам придется выполнить в нескольких местах.

Комментарии:

1. Спасибо. Я сделал, как вы написали, однако, когда я возвращаюсь к обычному представлению модели и перехожу к определению ограничения, я получаю сообщение об ошибке (сообщение записывается непосредственно в сетке), в котором говорится «не найдено» (я думаю, что жалоба касается ключевого поля) и предупреждение о том, что это ограничение будет удалено. Ключ поля, конечно, существует и действителен.

2. Требуется некоторое время, чтобы привыкнуть к редактированию XML… Как я уже говорил, некоторые изменения в документе приходится выполнять несколько раз, чтобы сохранить его согласованным.