2010-09-30 78 views
1

在行動中,我從數據庫採取了一些數據。 現在,鑑於我想從與其他表引用與lazyload一個字段取值,我得到這個錯誤: 無法初始化代理 - 沒有會話nhibernate無法初始化代理 - 沒有會話+ asp.net mvc

我不知道我現在可以做。

public ActionResult Index() 
     { 
      using (NHUnitOfWork.Start()) 
      { 
       var news = articlesRepository.News(0, 20); 
       return View(news); 
      } 
     } 

<%= Html.ActionLink(Html.Encode(Model.Author.Login), "zyx", "xyz") %> 

public ArticleMap() 
     { 
      References(x => x.Author).Not.Nullable().LazyLoad().Column("Author").Cascade.SaveUpdate(); 
     //... 
     } 

    public class Article : EntityBase<int> 
    { 
     public virtual User Author { get; set; } 
     //... 
    } 

回答

3

您只能在會話打開時訪問數據庫。你可以做三件事情:

  1. 會話保持打開狀態,直到WebRequest的完成
  2. 急於負載筆者
  3. 負載筆者在控制器,而不是在視圖中。
相關問題