Я только что заметил, что на одной странице моего сайта, где я передаю ViewModel на свою страницу просмотра, NHProf выдает следующее предупреждение:
Этот оператор выполняется из представления, что может привести к плохой производительности и / или хрупкому поведению.
Затем ссылки на эту страницу: http://nhprof.com/Learn/Alerts/QueriesFromViews
Моя ViewModel состоит всего из 2 свойств:
public IEnumerable<Photo> Photos { get; set; }
public Photo SelectedPhoto { get; set; }
Я назначаю фотографии этой ViewModel в моем контроллере следующим образом:
PhotoViewModel myViewModel = new PhotoViewModel();
myViewModel.Photos = entity.Photos;
My View, очевидно, наследует этот тип, и кроме вывода заголовка (который использует объект SelectedPhoto
), он просто перебирает каждый из Photos
, отображая некоторый контент для каждого из них.
NHProf показывает «проблемный» запрос, как находящийся там, где он извлекает коллекцию фотографий, которые я перебираю в моем представлении, хотя я не говорю явно, чтобы он отключился и получил эти записи из моего представления - я Вы передали эти записи в свойстве Photos
моей ViewModel.
У меня есть другие страницы, где мне не нужно передавать ViewModel, и я просто передаю IEnumerable<Photo>
в View, а затем отображаю разметку точно так же, как я делаю в проблемном представлении, и NHProf не выдает предупреждений ( как не должно быть) в этом сценарии.
Я думаю, что, возможно, это связано с отложенной загрузкой, и поскольку моя коллекция является частью ViewModel, когда я перехожу к циклу через свойство Photos
в типе ViewModel, он собирается получить эти записи в этот момент?
Кто-нибудь знает, что здесь происходит? Сайт функционирует отлично, но NHProf просто видит, что он делает что-то, откуда не должен делать это!!