Entity Framework: проблема связывания сущностей с обнуляемым полем - PullRequest
17 голосов
/ 29 ноября 2010

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

Ошибка 113: кратность недопустима в роли «Компания» в отношении «Пользовательский вид».Поскольку все свойства в зависимой роли обнуляются, кратность основной роли должна быть равна 0..1.

В моем сценарии у меня есть внешний ключ CompanyId в моем UsersView, который обнуляется (т.е.нет компании).Создание ассоциации с обнуляемым внешним ключом никогда не было проблемой с Linq 2 SQL.Кто-нибудь знает, как я могу обойти эту проблему в Entity Framework?

Заранее спасибо.

Ответы [ 2 ]

24 голосов
/ 29 ноября 2010

Я думаю, что вы сможете выбрать Ассоциацию и установить для параметра Multiplicity на панели свойств значение 0..1.Это должно устранить ошибку.

4 голосов
/ 28 июня 2011

Я публикую это, потому что я столкнулся с той же ошибкой, когда вручную создавал ассоциацию в конструкторе моделей в Visual Studio 2010. В моем поле не допускались пустые значения в базе данных, но по какой-то причине в конструкторе для этого свойства Nullable Поле было установлено (Нет) вместо Истина. Мне потребовалось некоторое время, чтобы понять, почему дизайнер жалуется. Как только я вручную изменил свойство Nullable поля, я пытался создать ассоциацию с ним без каких-либо ошибок.

Я знаю, что это не отвечает на первоначальный вопрос, но я обнаружил, что этот пост пытается решить мою проблему, которая выдает ту же ошибку.

...