Я пытаюсь выполнить следующее, используя Entity Framework 4.1 в .Net 4;
var context = new MyEntities();
var results = context.Diners
.OrderBy(i => i.MenuItems.Course.DisplayOrder)
.ThenBy(i => i.MenuItems.DisplayOrder);
Проблема здесь в том, что MenuItems является ObjectSet (коллекцией), а у коллекции нет курса (другой объединенный стол).У MenuItem (единственного числа) есть курс все же.Надеюсь, это очевидно.
Ниже приведен SQL-код, который я бы использовал для этого;
Select
*
From
Diner As D
Inner Join
DinerSelection As DS -- This is the Many to Many that EF has abstracted away.
On D.DinerId = DS.DinerId
Inner Join
MenuItem As MI
On DS.MenuItemId = MI.MenuItemId
Inner Join
Course As C
On MI.CourseId = C.CourseId
Order By
C.DisplayOrder, MI.DisplayOrder
Если это не так просто сделать в EF, тогда я просто сделаю этокак мнение, хотя я бы предпочел не.