訪問懶加載的屬性我有一個郵政類:NHibernate的ASP.NET MVC3剃刀代碼
public class Post
{
...
public virtual IList<Comment> Comments { get; set; }
...
}
在映射我集註釋爲多對一參考。正如我們所知,默認情況下它被設置爲延遲加載。
在我的Razor視圖腳本中,我想檢查帖子是否有任何評論,如果是,請添加一個按鈕,通過注入html來調用操作以通過ajax獲取該帖子的評論並顯示它們。
當我嘗試調用在剃刀上Post.Comments東西(如Model.Comments.Count())我收到一個異常說會話不存在。我知道爲什麼會發生 - 因爲延遲加載。
我的問題是如何處理這種情況?什麼是'最佳實踐'?
兩種解決方案在我腦海中:
1)設置註釋不懶加載 - 也不行,因爲我得到通過AJAX的意見後和這次我只需要評論 2伯爵)創建一個視圖模型類,包含信息,如果發佈有評論或通過ViewBag傳遞。
你如何看待這個建議?
感謝, 鮑爾泰克
恕我直言,這個解決方案是一個你應該去。在action方法中產生由所有數據庫特定信息組成的ViewModel。 Razor應該使用該ViewModel來生成所需的HTML - 並且這不會對數據庫進行任何調用。 –