2010-06-18 2 views
0

следующие работы (упорядоченные по имени):
from t in context.Table1.OrderBy("it.Name") select tметод EF OrderBy не работает с соединениями

Это не работает (нет упорядочивания):
from t in context.Table1.OrderBy("it.Name")
join t2 in context.Table2 on t.SomeId equals t2.SomeId select t

Нор делает это (пытается ссылка на родительскую таблицу для заказа):
from t in context.Table1
join t2 in context.Table2.OrderBy("it.Table1.Name") on t.SomeId equals t2.SomeId select t

также не это (пытается сделать заказ на столе ребенка):
from t in context.Table1
join t2 in context.Table2.OrderBy("it.ChildName") on t.SomeId equals t2.SomeId select t

Как заставить OrderBy не игнорироваться при подключении?

+2

Ваш неиспользуемый метод .Include? Ваши отношения не отображаются? –

+0

Ну, это ответ (используйте метод include): context.Table1.OrderBy («it.Name»). Включить («Таблица2») – dudeNumber4

ответ

0

Вы можете попробовать заказать после соединения, а не перед/во время.

from t in context.Table1 
join t2 in context.Table2 
on t.SomeId equals t2.SomeId 
orderby t.Name 
select t 
+0

см. Выше комментарий – dudeNumber4

0

Для вашего второго примера, попробуйте:

var res = from t in context.Table1 
      join t2 in context.Table2 on t.SomeId equals t2.SomeId 
      orderby t.Name 
      select t; 

Это должно заказать присоединившихся результаты.

+0

Мне нужно использовать метод OrderBy - имя столбца будет динамическим – dudeNumber4

1

Это будет работать:

(from t in context.Table1 
join t2 in context.Table2 on t.SomeId equals t2.SomeId 
select t).OrderBy("it.Name"); 

Однако, вы не должны использовать join на всех, как @moi_meme комментарии.

Смежные вопросы