2011-07-27 98 views
0

有很多類似的問題,我發表了這個問題之前我做了我的研究。一個LINQ查詢加載多對多關係

我有3個表,它有多對多的關係。

帖子:帖子ID,PostName

標籤:標籤識別,標籤名

PostTag:PostTagID,帖子ID,標籤識別

這裏是我的控制器代碼。

public ActionResult List(int page = 1, int record = 10) 
    { 
     return View((IEnumerable<Post>)GetPosts(page, record)); 
    } 

    public IList<Post> GetPosts(int page = 1, int record = 10) 
    { 
     var options = new DataLoadOptions(); 

     options.LoadWith<Post>(p => p.PostTags); 
     options.LoadWith<PostTag>(pt => pt.Tag); 

     using (var db = new mvc3codesDataContext()) 
     { 
      db.LoadOptions = options; 

      return (from p in db.Posts select p).ToList(); 
     } 


    } 

這是我的視圖文件中的代碼。

@foreach (var item in Model) { 
<tr> 
    <td> 
     @Html.DisplayFor(modelItem => item.PostID) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.PostName) 
     <br /> 

     @foreach (var pt in item.PostTags) -----> this part not working. 
     {         

     } 
    </td> 
</tr> 

}

它顯示的職位名單,但我不知道如何輸出的標籤。

回答

0

在你的例子中,pt是一個PostTag,而不是標籤本身。在這種情況下,您需要將多關係視爲1-0 .. * - 1。在這種情況下,您將訪問pt.Tag.Property。

+0

我嘗試做「item.Tags」,但intellisense在列表中沒有「標籤」。 – qinking126