Linq: порядок при включении нескольких таблиц - PullRequest
2 голосов
/ 25 июня 2011

В настоящее время изучаю Linq to Entity. Я добился успеха, но пришел в тупик с предложением orderby и его использованием с несколькими таблицами.

    var query = from k in contxt.pages.Include("keywords") 
where k.ID == vals.pageId select k;

Насколько я понимаю, с помощью приведенного выше кода создается внутреннее объединение, в котором идентификатор равен pageId.

Так что мне трудно представить, как я выполняю заказ за оба стола? Я хотел бы отсортировать обе таблицы.

Я пробовал:

var query = from k in contxt.pages.Include("keywords") where k.ID == vals.pageId orderby k.keywords.**?** select k;

Знак вопроса не должен быть там. Я показываю, что столбца, по которому я хочу отсортировать, нет. Попробую это к.Кегворс. не показывает столбец.

Я бы написал SQL-запрос следующим образом:

string query = "SELECT pages.page, pages.title, pages.descp, keywords.keyword
FROM pages INNER JOIN keywords ON pages.ID = keywords.pageID
ORDER BY keywords.sort, pages.page"; 

страницы и ключевые слова имеют отношение 1 ко многим, что FK ключевые слова.

Спасибо, deDogs

1 Ответ

4 голосов
/ 25 июня 2011

Вот, пожалуйста.

          var result = (from x in pages
                      join y in keywords on x.ID equals y.pageID 
                      orderby y.sort, x.page
                      select new
                      {
                          x.Page,
                          x.title,
                          x.descp,
                          y.keyword
                      });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...