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