Проблемы с картой One-To-One от Entity Framework
Использование VS 2010 beta 2, ASP.NET MVC.
Я попытался создать файл фреймворка Entity и получил данные из моей базы данных.
Были некоторые проблемы с отношениями, поэтому я начал настраивать все вокруг, но я продолжал получать следующую ошибку для простых отношений один к одному
Ошибка 1 Ошибка 113: множественность недействительна в роли "UserProfile" в отношении "FK_UserProfiles_Users". Поскольку свойства зависимой роли не являются ключевыми свойствами, верхняя граница множественности зависимой роли должна быть *. myEntities.edmx 2024
Таблица My Users состоит из некоторых других отношений "многие-ко-многим" с другими таблицами, но когда я пытаюсь установить отношения "один-к-одному" с другими таблицами, эта ошибка появляется.
Таблица пользователей
- Идентификатор_пользователя
- Имя пользователя
- Email
и т.д..
Таблица UserProfiles
- UserProfileID
- UserID (таблица FK для пользователей)
- Местоположение
- День рождения
Ответы
Ответ 1
Для отношений "один к одному" EF ожидает, что таблицы используют один и тот же первичный ключ. И действительно, если это правда, один-к-одному они, вероятно, должны. Итак, в вашем примере, если вы сделаете UserID основным ключом в таблице UserProfiles, ваш индивидуальный будет работать.
Ответ 2
У меня есть аналогичная проблема, но с сценарием продажи и неплатежеспособности.
Пролет может существовать без продажи, и продажа может существовать без простоя. Это означает, что у меня есть отношения 0 или 1 до 0 или 1.
Распространение ссылок на источники, но layby не может использовать первичный ключ Sale, а Sale не может использовать первичный ключ Layby.
Я решил проблему с помощью отношения 0 или 1 к многим, настроил getter и setter'а Laybys на продажу как закрытый, а затем предоставил свой собственный 'Layby' getter и setter в моем POCO.