Ошибка 3004, ошибка сопоставления с EF - PullRequest
7 голосов
/ 09 мая 2011

Хорошо, так как мои проблемы были решены, я пролистывал код, до сих пор: сейчас я столкнулся с одним, я не могу даже найти что-нибудь в Google для него. Вот текст ошибки:

Ошибка 3004: проблема в отображении

фрагменты, начиная со строки 937: Нет отображение указано для свойств StoreItem.ItemPrice в Set StoreItems. Объект с ключом (PK) не будет туда и обратно, когда: Тип объекта [psychoco_GodsCreationTaxidermyModel.StoreItem] F: \ Projects \ GodsCreationTaxidermySVN \ GodsCreationTaxidermy.Data \ GCTEntities.edmx 938 945 GodsCreationTaxidermy.Data

Вам нужны примеры кода, дайте мне знать

Ответы [ 3 ]

8 голосов
/ 09 мая 2011

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

1 голос
/ 02 ноября 2013

Я столкнулся с той же ошибкой, используя первый подход к базе данных. Причина заключалась в том, что когда я добавил ассоциацию через дизайнера, EF решил добавить синтетическое поле к моему принципалу на основе любых ключевых отношений, которые я определил. Если вы сначала делаете базу данных, проверьте, является ли ItemPrice в StoreItem реальным полем базы данных или EF просто решила сгенерировать его для вас.

0 голосов
/ 16 ноября 2017

Еще одна причина, с которой мы столкнулись: скажем, у нас есть два разработчика, A и B.

  1. Dev A добавляет столбцы (скажем, "newcol") к таблице (скажем, "mytable") в Затем проект базы данных обновляет свою модель. Все хорошо строит, база данных имеет mytable.newcol, и модель отражает это.
  2. Dev B тянет / синхронизирует но забывает публиковать изменения в своей локальной базе данных. Модель имеет mytable.newcol, но их локальная база данных - нет.
  3. Dev B затем каким-то образом меняет модель и обновляет ее из базы данных, VS видит, что mytable.newcol не существует, поэтому он становится несвязанным.

  4. Dev B осознает свою ошибку и публикует изменения в базе данных.

  5. Dev B затем обновляет модель из базы данных снова. Теперь VS видит mytable.newcol столбец в базе данных и создает mytable.newcol1 (обратите внимание на суффикс), который связан со столбцом базы данных, так как он уже был несвязанный newcol в модели.

    Для Dev B VS жалуется, что mytable.newcol не отображается и терпит неудачу.

Решение - исправить, удалить mytable.newcol из модели, переименовать mytable.newcol1 в newcol ... или вернуться туда, где вы были, и не забудьте опубликовать базу данных перед обновлением модели!

Надеюсь, это кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...