我正在尝试使用 .Net 4 中的 Entity Framework 4.1 完成以下任务;
var context = new MyEntities();
var results = context.Diners
.OrderBy(i => i.MenuItems.Course.DisplayOrder)
.ThenBy(i => i.MenuItems.DisplayOrder);
这里的问题是 MenuItems 是一个 ObjectSet(集合),而集合没有 Course(另一个连接表)。不过,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 中这不是一件容易的事情,那么我只会将其作为 View 来完成,尽管我不愿意。
最佳答案
我认为这就是您想要做的。
.OrderBy(i => i.MenuItems.SelectMany(c=>c.Course).DisplayOrder)
关于c# - 通过 Entity Framework 连接的多方进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6331297/