один запрос linq, чтобы загрузить отношения многие ко многим - PullRequest
0 голосов
/ 28 июля 2011

Есть много похожих вопросов, и я провел исследование, прежде чем опубликовать этот вопрос.

У меня есть 3 таблицы, их много ко многим.

Сообщение: PostID, PostName

Tag: TagId, TagName

PostTag: PostTagID, PostID, TagID

вот мой код в контроллере.

    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>

}

Показывает список сообщений, но я не знаю, как выводить теги.

1 Ответ

0 голосов
/ 28 июля 2011

В вашем примере pt - это PostTag, а не сам тег.В этом случае вам нужно рассматривать отношения «многие-многие» скорее как 1-0 .. * - 1.В этом случае вы получите доступ к pt.Tag.Property.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...