Подтвердить что ты не робот

Entity Framework: связать объекты с полями с нулевым значением

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

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

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

Спасибо заранее.

4b9b3361

Ответ 1

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

Ответ 2

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

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