Почему отложенная загрузка не работает в режиме просмотра бритвы (файлы cshtml)? - PullRequest
2 голосов
/ 25 февраля 2012

Я пишу следующие утверждения в моем файле cshtml: -

@{
string categoryName = string.Format("{0}->{1}", label.Category.Parent.Name,
label.Category.Name);
@categoryName
}

и получаю исключение Object reference null.

С другой стороны, то же самое работает в файле Controller.cs ив ближайшем окне тоже.Я знаю, что это связано с отложенной загрузкой.

Есть ли какая-то концепция, что она не работает в выражениях в файлах Cshtml?

Спасибо

1 Ответ

5 голосов
/ 25 февраля 2012

Это не работает, потому что ваш контекст удаляется ко времени выполнения вашего кода. Все данные должны быть загружены на ваш взгляд, поэтому отключите отложенную загрузку и используйте активную загрузку. Вызовите .Single () для ваших результатов, чтобы форсировать загрузку плюс использование: из o в context.Labels.Include (o => o.Parent), например, чтобы форсировать загрузку в это время. Вы также можете выровнять эти результаты в виде модели в вашем контроллере.

...