Проблема с внешним ключом при использовании ADO .NET Entity Data - PullRequest
0 голосов
/ 05 ноября 2010

Я занимаюсь разработкой приложения ASP.NET MVC2 с базой данных MSSQL с использованием VS2008 и SQL Express 2008 R2. У меня есть таблица с именем Business и другая таблица с именем Employee. У сотрудника есть внешний ключ BusinessID, поскольку все сотрудники должны принадлежать бизнесу.

Я использую модель данных сущности ADO .NET для генерации моей модели. Из чтения другого поста кажется, что у меня есть версия платформы сущностей, которая не переносит внешние ключи, а создает свойство навигации.

Я вручную вставил некоторые данные в базу данных, создав бизнес с идентификатором 1 и сотрудником с business_id 1. Теперь, когда я пытаюсь загрузить свою индексную страницу, представляющую собой список сотрудников, она дает исключение нулевой ссылки, поскольку бизнес-объект, связанный с объектом Employee, имеет значение null.

Разве модель сущности не предназначена для заполнения этого свойства для меня? Если нет, то как мне создать отношения в интерфейсе между объектами, если у меня нет бизнес-идентификатора, поступающего из БД из-за того, что внешний ключ не был перенесен?

1 Ответ

1 голос
/ 05 ноября 2010

Вы должны явно загрузить свойства навигации:

entityContext.Businesses.Include("Employees");

Или, если вы уже загрузили объект, вы можете использовать (для коллекции навигации):

if(!business.Employees.IsLoaded)
    business.Employees.Load();

Или, если есть один экземпляр:

if(!employee.BusinessReference.IsLoaded)
    employee.BusinessReference.Load();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...