Перезаполнение свойств навигации Entity Framework - PullRequest
0 голосов
/ 12 октября 2011

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

По сути, он возвращает мне:это хорошо.

Существует одно из многих свойств внешнего ключа, например:

AreaId

, которое заполняется.

Однако в моей модели у меня есть навигациясвойство:

// Navigation properties
        public virtual Area Area { get; set; }

, которое, конечно, не заполняется, получая его через хранимую процедуру.

Мне интересно, есть ли простой способ получить эти свойства навигации заполненными.

Полагаю, я слышал о какой-то команде, которую вы можете вызвать для своей сущности, чтобы обновить свойства навигации.

1 Ответ

1 голос
/ 12 октября 2011

Вы можете использовать это:

context.Entry(loadedEntity).Reference(l => l.Area).Load();

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

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