Первая база данных EF — ошибка сопоставления 3025

Новичок в EF и попробуйте что-то с «База данных в первую очередь».

Error 3025: ... :Must specify mapping for all key properties
                    (PurchaseUsers.PurchaseUsersId) of table PurchaseUsers.

У меня есть в моей БД 3 таблицы:

Purchases       Participants        PurchaseUsers
PurchaseId      ParticipantId       PurchaseUsersId
...             ...                 PurchaseId
                                    ParticipantID

Таблица PurchaseUsers предназначена для того, чтобы знать, какой участник(и) использует(ют) покупку.

Сначала у меня не было PK в этой таблице, но затем я получил следующую ошибку при попытке сохранить Purchase. Немного погуглив, я обнаружил, что мне пришлось добавить ПК, чтобы избежать этой ошибки.

Unable to update the EntitySet 'PurchaseUsers' because it has a DefiningQuery 
   and no <InsertFunction> element exists in the <ModificationFunctionMapping> element 
   to support the current operation.

Но добавление PK создало ошибку сопоставления, и я просто не могу понять, как это решить или создать сопоставление. Сама таблица PurchaseUsers не видна в моей модели .edmx, но она указана в Store в обозревателе моделей.

Спасибо.

ОБНОВЛЕНИЕ

Сегодня изменил имя столбца в базе данных. «Обновить модель из базы данных» добавило новое имя столбца в таблицу в модели, но не удалило старое. Пришлось в очередной раз начинать с нуля. Похоже, что функция обновления работает не очень хорошо.


person Koen    schedule 13.02.2012    source источник
comment
Вы обновили модель (в дизайнере) после того, как добавили первичный ключ в базу данных?   -  person Pawel    schedule 14.02.2012
comment
@ Павел Да, я сделал. И в этот момент я получаю ошибку 3025. Также отношения устанавливаются на уровне базы данных. В моей модели существует отношение «мазный ко многим» между таблицами «Участники» и «Покупки». И я предполагаю, что здесь что-то идет не так, потому что мостовая таблица не входит в модель, чтобы связать эти 2 таблицы.   -  person Koen    schedule 14.02.2012
comment
Это странно. Вы пробовали полностью удалить модель и создать с нуля? Если этот подоконник у вас не работает - можете ли вы выложить минимальный репро?   -  person Pawel    schedule 15.02.2012
comment
@Pawel Это действительно странно. Начало с нуля помогло, хотя следует подумать, что модель обновления из базы данных также должна была работать. В любом случае, большое спасибо. Теперь я могу продолжить дурачиться еще немного :-) Если хотите, вы можете опубликовать это как ответ, чтобы этот вопрос можно было закрыть.   -  person Koen    schedule 15.02.2012


Ответы (1)


Это странно. Обновление модели из базы данных должно синхронизировать модель и базу данных. Попробуйте удалить и заново создать модель с нуля.

person Pawel    schedule 15.02.2012