Entity Framework Проблемы сопоставления один-к-одному

Использование VS 2010 бета 2, ASP.NET MVC.

Я попытался создать файл структуры Entity и получил данные из моей базы данных.

Были некоторые проблемы с отношениями, поэтому я начал подправлять вещи, но продолжал получать следующую ошибку для простых отношений один-к-одному

Ошибка 1 Ошибка 113: кратность недопустима в роли "UserProfile" в отношении "FK_UserProfiles_Users". Поскольку свойства зависимой роли не являются ключевыми свойствами, верхняя граница кратности зависимой роли должна быть *. myEntities.edmx 2024

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

Таблица пользователей

  • Идентификатор пользователя
  • имя пользователя
  • Эл. адрес

так далее..

Таблица пользовательских профилей

  • UserProfileID
  • UserID (FK для таблицы пользователей)
  • Место нахождения
  • день рождения

3 ответа

Решение

Для отношений один-к-одному EF ожидает, что таблицы используют один и тот же первичный ключ. И действительно, если это правда один на один, они, вероятно, должны. Так что в вашем примере, если вы сделаете UserID первичным ключом в таблице UserProfiles, ваш один-к-одному будет работать.

У меня похожая проблема, но со сценарием продажи и ожидания.

Лайби может существовать без продажи, а продажа может существовать без продажи. Это означает, что у меня есть отношения от 0 или 1 до 0 или 1.

Layby ссылается на продажу, но layby не может использовать первичный ключ продажи, а Sale не может использовать первичный ключ Layby.

Я решил проблему с помощью отношения 0 или 1 ко многим, настроил геттер и установщик Laybys на продажу как частные, а затем предоставил свой собственный геттер и сеттер Layby в своем POCO.

Установите составной первичный ключ для двух столбцов UserProfileID и UserID

Другие вопросы по тегам