Отображение отношений один к одному с внешним ключом в Entity Framework 4.0? - PullRequest
2 голосов
/ 02 июня 2010

Я уверен, что мне не хватает чего-то очень простого, но, скажем, у меня есть две сущности, Employee и EmployeeType.

Тип сотрудника будет содержать такие значения, как «Полная занятость», «Подрядчик», «Стажер» и т. Д.

Сущность Employee будет содержать одно и только одно значение EmployeeType.

Итак, я проектирую новую модель .edmx, используя подход Model-First, и генерирую мою фактическую схему данных сервера sql из этой модели.

Я хочу добавить идентификатор внешнего ключа целочисленного типа в мою сущность Employee EmployeeTypeId, которая будет сопоставлена ​​с первичным ключом сущности EmployeeType.

Итак, я пошел вперед и сделал это в своей сущности Сотрудник. Я застрял в том, как, хотя дизайнер Entity Framework, применять ссылочное ограничение 1: 1 к этому свойству EmployeeTypeId? Или EF обрабатывает это автоматически за кулисами?

спасибо заранее, John

Ответы [ 2 ]

3 голосов
/ 02 июня 2010

Думаю, я понял ответ на свой вопрос. В конструкторе поверхностей EF .edmx мне нужно было щелкнуть правой кнопкой мыши скалярное свойство, которое я хотел установить как идентификатор внешнего ключа для другой сущности, и выбрать «Ключ сущности».

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

Если вы явно не зададите свойству внешнего ключа значение «Entity Key», EF решит, что вы хотите указать идентификатор первичного ключа для другой таблицы.

ура

2 голосов
/ 02 июня 2010

Сначала вы создаете новую связь (если вы еще этого не сделали) между двумя сущностями. Просто щелкните правой кнопкой мыши на дизайнере edmx и выберите Add -> Association.

Когда вы щелкаете по ассоциации, которую вы только что создали в конструкторе моделей, в окне свойств вы можете установить для свойств End1 Multiplicity и End2 Multiplicity значение 1. Это гарантирует, что вы можете установить только один объект отношения при использовании структура сущности. Между прочим, это не применяется в SQL-сервере, поскольку SQL-сервер неявно не поддерживает отношения 1: 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...