ViewModel を View ページに渡すサイトの 1 つのページで、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 は、本来すべきではないところから何かを行っていることに気付きます?!