2011-07-27 54 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