0

我的数据库

[ Departement ] *-* [ Group ] 1-* [ Room ]

一个部门可以有很多组(很多 - 很多),一个组可以有很多房间

我想返回departement具有特定 ID 的,获取 group.name 上的groups订单并rooms从按 room.number 排序的组中获取

到目前为止我所拥有的

db.Departement .Include("Group.Room").ToList().First(a => a.Id == idDepartement);

问题是我不知道如何对关联(组和房间)进行排序

谢谢

4

1 回答 1

0

如果输入x是一个IEnumerable<Department>然后:

x.SelectMany(d => d.Group).OrderBy(g => g.Name)

将导致IEnumerable<Group>按名称排序(跨所有部门)。Enumerable.SelectMany接受 aFunc<TIn, IEnumerable<TOut>>并将所有返回的枚举合并为一个枚举;这允许您跟踪从一个或多个起始对象到许多关联对象的关联。

想要返回具有特定 ID 的部门 [...] 从按 room.number 排序的组中获取房间

您希望结果是部门、组或房间的集合吗?

.ToList().

这意味着您将从实体源获取所有部门及其所有组和房间,并将它们移动到本地内存中,然后丢弃大部分数据(所有数据都与第一个返回的部门无关)。除非数据相当小,否则最好在实体源(假设是数据库服务器)上执行此操作,而不是浪费时间和带宽在本地复制它。

于 2013-03-28T11:44:59.423 回答