Присоединение базы данных в Entity Framework - PullRequest
0 голосов
/ 03 февраля 2012

Я новичок в ASP.NET MVC 3 и ищу в Интернете, но я ничего не нашел о том, как использовать объединение в ASP.NET MVC 3 .Например, в своем проекте социальной сети я хочу получить все посты с комментариями.Я использую:

var myobj = DB.Comments.Include("Post").ToList();

Но это показывает только те сообщения, которые имеют комментарии.Я хочу показать все сообщения, а затем их соответствующие комментарии.

Я задал похожий вопрос, и люди ответили, что используют

var myobj = DB.Post.Include("Comments").ToList();

Но это не так.Мои знания баз данных говорят о том, что у поста есть комментарии, а не у комментариев есть посты.Просто COMMENT имеет внешний ключ от POST.

Как мне решить это простым запросом к базе данных или методом?

    var myobj = from u in DB.Posts
                    join b in DB.Comments
                    on u.UserID equals b.UserID
                    into obj
                    from ua in obj.DefaultIfEmpty()
                    select new { userComments = (ua == null) ? "" : ua.UserComments, UserPosts = u.UserPosts };
    return view(myobj.ToList());

Если я использую вышеупомянутое, то я не могу передать егопредставление, потому что это запрос SQL, а представление and требует модель в любом случае.Каково полное решение в обоих случаях, то есть от использования SQL-запроса или есть какой-либо другой метод?

1 Ответ

0 голосов
/ 03 февраля 2012

Проблема в том, что вы делаете внутреннее соединение, AKA просто Join. Это значит, что оно должно совпадать.

Вместо этого используйте внешнее соединение. Пример .

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