2011-07-27 9 views
0

この質問を投稿する前に、多くの同様の質問があり、私は研究を行った。多対多の関係をロードする1つのlinqクエリ

I have3テーブルは、その多対多の関係です。

ポスト:PostID、PostName

タグ:TAGID、TagNameの

PostTag:PostTagID、PostID、タグ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はリストに "Tags"を持っていませんでした。 – qinking126