2013-08-25 34 views
0

後成爲空我有我的控制器一些代碼,看起來像:對象屬性第一次使用

var db = new ComicEntities(); 
      var user = db.Users.Where(i => i.UserName == username).Include(i => i.UserFavorites); 
      var AuthorComics = db.ComicAuthors.Where(i => i.User_Id == 1) 
         .Include(i => i.Comic) 
         .Include("Comic.Chapters") 
         .Include("Comic.Chapters.Pages"); 
      var Comics = AuthorComics.Select(i => i.Comic).Include("Chapters").Include("Chapters.Pages"); 
      return View(new LocalUserViewModel { User = user.First(), Comics = Comics.ToList() }); 

我的看法是這樣的:

@model Comics.Models.LocalUserViewModel 

@foreach(var favorite in @Model.User.UserFavorites) 
      { 
       <div class="chapter-info"> 
        <span class="chapter-info-title misc-comic-title">@favorite.Comic.Title</span> 
        <span class="chapter-info-page misc-comic-info">@favorite.DateFavorited</span> 
       </div> 
      } 

的問題是,第一次迭代後foreach循環,屬性@favorite.Comic變爲空。

+0

你沒有嘗試使用For循環代替的foreach?它有助於。 –

+0

我也嘗試過。 –

回答

1

現在你的控制器查找用戶並且急切地獲取收藏夾,但是不會獲取下一個級別。你需要稍微修改您的查詢,即

var user = db.Users.Where(i => i.UserName == username) 
          .Include(i => i.UserFavorites) 
          .Include("UserFavorites.Comic"); 

注意,其他查詢做抓取信息,但他們在不同的對象圖....

+0

謝謝。這工作。 –