2011-01-11 2 views
0

Попытка изменить две связи в нашей структуре сущностей из отношений «многие-к-одному» ко многим. Поэтому я попытался сделать очевидную вещь: нажал на каждую ассоциацию на диаграмме, соответствующим образом изменил соответствующий конец ассоциации, а затем изменил имя свойства навигации на множественное число, чтобы отразить это изменение.Правильное сопоставление ассоциаций в Entity Framework

Это приводит к следующей ошибке сборки, или один для каждого из двух изменений, которые я сделал:

Ошибка 3002: Проблема в картированию фрагментов, начиная с линии 1761: Потенциальное нарушение среды выполнения таблицы клавиши CustomerServices в (CustomerServices.Id): Колонки (CustomerServices.Id) отображаются в EntitySet CompiledDatabaseCustomerService в свойств (CompiledDatabaseCustomerService.CustomerService.Id) на концептуальной стороне, но они не форму ключевые свойства в EntitySet в (CompiledDatabaseCustomerService.CompiledDatabase.Id, CompiledDatabaseCustomerService.CustomerService.Id)

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

веселит, Matt

ответ

0

ОК, оказывается, все, что требуется, - это обновить базу данных от модели. Idiot me - я думал, что только восстановил SQL-скрипты для создания базы данных.

+0

Ah. Ха-ха ... Я даже не думал об этом, но, да. Независимо от того, каким образом вы идете (сначала обновляя базу данных или сначала обновляя модель), вам нужно обновить другую. Имеет смысл! (И хорошее напоминание для любого, кто может столкнуться с этой проблемой в будущем.) – JasCav

0

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

Если это не ваша проблема, проверьте также, что вы не перевернули столбцы относительно вашего сопоставления - убедитесь, что все отображается в правильном направлении. (Я бы рекомендовал напрямую посмотреть на ваши сопоставления, чтобы убедиться, что это происходит.)

+0

Спасибо, что посмотрели. Я на самом деле не коснулся сопоставлений клавиш, так что это кажется маловероятным источником проблемы: все, что я сделал, изменено на один конец существующей ассоциации. Когда вы говорите, чтобы посмотреть на сопоставления напрямую, вы хотите проверить файл Designer.cs? –

+0

@Matt - взгляните на таблицу сопоставления, щелкнув правой кнопкой мыши по таблице на диаграмме сущности и выбрав «Table Mapping». Посмотрите на сопоставления столбцов и убедитесь, что они сопоставлены соответствующим образом. (Кстати, я не уверен, что мои предложения помогут вам (я надеюсь, что они это сделают), но это две области, в которых я видел такие проблемы.) – JasCav

Смежные вопросы