проблема с запросом linq для внутреннего соединения и левого соединения - PullRequest
0 голосов
/ 25 марта 2011

У меня есть 3 таблицы с именами Posts, Tags и PostXTags, которые PostXTags являются соединителем между сообщениями и тегами.

Я пытался сделать следующий запрос в linq, но я так и не достиг идеального результата.

Пожалуйста, помогите мне написать правильный LINQ этот запрос:

SELECT * FROM Posts
INNER JOIN PostXTags
ON Posts.PostID = PostXTags.PostID
LEFT JOIN Tags
ON PostXTags.TagID = Tags.TagID

Ответы [ 2 ]

0 голосов
/ 26 марта 2011

Я думаю, вы хотите добиться этого:

var query = context.Tags.Where(t => t.Id == id).SelectMany(t => t.Posts);
0 голосов
/ 25 марта 2011
var query = from p in Posts
            join x in PostXTags on p.PostID equals x.PostID
            join t in Tags on x.TagID equals t.TagID into joinedTags
            from t in joinedTags.DefaultIfEmpty()  //left join                
            select new { Posts = p, Tags = t };    //t could be null   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...