我的数据库
[ Departement ] *-* [ Group ] 1-* [ Room ]
一个部门可以有很多团体(很多人),一个团体可以有很多房间
我想返回具有特定ID的departement
,在group.name上获取groups
订单,并从room.number订购的组中获取rooms
到目前为止我有什么
db.Departement .Include("Group.Room").ToList().First(a => a.Id == idDepartement);
问题是我不知道如何对关联(组和房间)进行排序
感谢
答案 0 :(得分:0)
如果输入x
是IEnumerable<Department>
,那么:
x.SelectMany(d => d.Group).OrderBy(g => g.Name)
将导致IEnumerable<Group>
按名称排序(跨所有部门)。 Enumerable.SelectMany
获取Func<TIn, IEnumerable<TOut>>
并将所有返回的可枚举合并为一个可枚举;这允许您跟踪从一个或多个起始对象到许多关联对象的关联。
希望返回具有特定身份证的部门[...]从按房间订购的团体中取出房间。数字
您希望结果是部门,团体或房间的集合吗?
.ToList().
这意味着您将从Entity源获取所有Departments及其所有组和房间,并将它们移动到本地内存中,然后丢弃大部分数据(所有数据都与第一个返回的部门无关)。除非数据相当小,否则最好在实体源(假设数据库服务器)上执行此操作,而不是浪费时间和带宽在本地复制它。